Wie man Präsentationen in Python lädt

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-foss

Schritt 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)

Siehe auch:

 Deutsch