Wie man Präsentationen in Python lädt
Aspose.Slides FOSS for Python lets you open any .pptx Datei, prüfen Sie deren Inhalt und speichern Sie sie entweder wieder als PPTX oder extrahieren Sie Daten daraus. Diese Anleitung behandelt das Öffnen einer Datei, das Durchlaufen von Folien, das Lesen von Formtexten und das Round‑Trip‑Speichern.
Schritt-für-Schritt-Anleitung
Schritt 1: Paket installieren
pip install aspose-slides-fossSchritt 2: Eine vorhandene Präsentation öffnen
Übergeben Sie den Dateipfad an slides.Presentation(). Verwenden Sie den Kontextmanager, um Aufräumen sicherzustellen.
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
with slides.Presentation("input.pptx") as prs:
print(f"Slide count: {len(prs.slides)}")
prs.save("output.pptx", SaveFormat.PPTX)Unbekannte XML‑Teile in der Quelldatei werden unverändert beibehalten: Die Bibliothek entfernt niemals Inhalte, die sie noch nicht versteht.
Schritt 3: Folien untersuchen
Durchlaufen Sie alle Folien und geben Sie deren Index aus:
import aspose.slides_foss as slides
with slides.Presentation("deck.pptx") as prs:
for i, slide in enumerate(prs.slides):
shape_count = len(slide.shapes)
print(f"Slide {i}: {shape_count} shapes")Schritt 4: Formtext lesen
Iterieren Sie über Formen und lesen Sie Text aus Formen, die ein TextFrame:
import aspose.slides_foss as slides
with slides.Presentation("deck.pptx") as prs:
for slide in prs.slides:
for shape in slide.shapes:
if hasattr(shape, "text_frame") and shape.text_frame is not None:
text = shape.text_frame.text
if text.strip():
print(f" Shape text: {text!r}")Schritt 5: Dokumenteigenschaften lesen
Greifen Sie auf die Kerndokumenteigenschaften von prs.document_properties:
import aspose.slides_foss as slides
with slides.Presentation("deck.pptx") as prs:
props = prs.document_properties
print(f"Title: {props.title}")
print(f"Author: {props.author}")
print(f"Subject: {props.subject}")Schritt 6: Round‑Trip‑Speichern
Nachdem Sie die Präsentation untersucht oder geändert haben, speichern Sie sie wieder als PPTX:
prs.save("output.pptx", SaveFormat.PPTX)Das Speichern an einen anderen Pfad erstellt eine neue Datei. Das Speichern am selben Pfad überschreibt die Originaldatei.
Häufige Probleme und Lösungen
FileNotFoundError
Stellen Sie sicher, dass der Pfad zu dem .pptx Datei relativ zum Arbeitsverzeichnis korrekt ist. Verwenden Sie pathlib.Path für eine robuste Pfadkonstruktion:
from pathlib import Path
path = Path(__file__).parent / "assets" / "deck.pptx"
with slides.Presentation(str(path)) as prs:
...Exception: File format is not supported
Die Bibliothek unterstützt .pptx (Office Open XML) nur. Legacy .ppt (binary PowerPoint 97–2003) Dateien werden nicht unterstützt.
Formen haben kein text_frame‑Attribut
Einige Formen (Connectors, PictureFrames, GroupShapes) haben keinen text_frame. Schützen Sie mit hasattr(shape, "text_frame") and shape.text_frame is not None bevor Sie auf Text zugreifen.
Häufig gestellte Fragen
Wird beim Laden der gesamte Originalinhalt erhalten?
Ja. Unbekannte XML‑Teile werden beim Round‑Trip‑Speichern unverändert beibehalten. Die Bibliothek entfernt keinen XML‑Inhalt, den sie noch nicht versteht.
Kann ich ein passwortgeschütztes PPTX laden?
Passwortgeschützte (verschlüsselte) Präsentationen werden in dieser Edition nicht unterstützt.
Kann ich eingebettete Bilder extrahieren?
Greifen Sie auf die Bildersammlung zu: prs.images gibt das ImageCollection. Jede Bilddatei hat ein content_type und ein bytes Eigenschaft, um die Rohbilddaten zu lesen.
Wird das Laden aus einem In‑Memory‑Stream unterstützt?
Direktes Laden von io.BytesIO ist in der aktuellen API nicht verfügbar. Schreiben Sie die Bytes zuerst in eine temporäre Datei:
import tempfile, os
import aspose.slides_foss as slides
with tempfile.NamedTemporaryFile(suffix=".pptx", delete=False) as tmp:
tmp.write(pptx_bytes)
tmp_path = tmp.name
try:
with slides.Presentation(tmp_path) as prs:
print(f"Slides: {len(prs.slides)}")
finally:
os.unlink(tmp_path)