Wie man Präsentationen in Python lädt
Aspose.Slides FOSS for Python lets you open any .pptx Diese Anleitung umfasst das Öffnen einer Datei, Iteration von Folien, Lesen von Formtext und Rundfahrt beim Speichern.
Schritt für Schritte
Schritt 1: Installieren des Pakets
pip install aspose-slides-fossSchritt 2: Öffnen Sie eine vorhandene Präsentation
Übergeben Sie den Pfad der Datei an: slides.Presentation(). Verwenden Sie den Kontext-Manager, um die Reinigung 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 wörtlich erhalten: Die Bibliothek entfernt nie Inhalte, die sie noch nicht versteht.
Schritt 3: Slides überprüfen
Iterate über alle Folien und drucken Sie ihren Index:
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: Lesen von Textform
Iteration über Formen und Lesen von Text aus Formularen, die eine 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: Lesen der Dokument-Eigenschaften
Zugriff auf Kerndokument-Eigenschaften 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: Rundfahrt speichern
Nach der Überprüfung oder Änderung der Darstellung speichern Sie sie wieder in PPTX:
prs.save("output.pptx", SaveFormat.PPTX)Wenn man auf einen anderen Pfad speichert, erstellt sich eine neue Datei.
Häufige Probleme und Lösungen
FileNotFoundError
Überprüfen Sie, ob der Weg zum .pptx Die Datenbank ist nicht korrekt im Verhältnis zum Arbeitsverzeichnis. pathlib.Path für robuste Bahnkonstruktionen:
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 die .pptx (Office Open XML) nur. Vermächtlichte Versionen .ppt (binäres PowerPoint 972003) nicht unterstützt.
Formen haben kein Text_frame-Attribut
Einige Formen (Verbindungen, Bildbilder, Gruppenformen) haben keine text_frame.- Die Wache mit . hasattr(shape, "text_frame") and shape.text_frame is not None Vor dem Zugriff auf Text.
Häufig gestellte Fragen
Wird bei der Aufladung alle Originalinhalte erhalten?
Ja. Unbekannte XML-Teile werden auf der Rundreise gespeichert. Die Bibliothek entfernt keinen XML, den sie noch nicht versteht.
Kann ich ein passwortgeschütztes PPTX laden?
Passwortgeschützte (verschlüsselte) Präsentationen werden in dieser Ausgabe nicht unterstützt.
Kann ich eingebettete Bilder extrahieren?
Zugriff auf die Bilder-Sammlung: prs.images gibt den ImageCollection.Jedes Bild hat eine content_type und a bytes Eigenschaft, die Rohbilddaten zu lesen.
Wird das Laden von einem In-Memory Stream unterstützt?
Direkt aus der io.BytesIO wird nicht in der aktuellen API freigelegt. Schreiben Sie die Bytes zu einer temporären 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)