Wie man Präsentationen in Python speichert

Wie man Präsentationen in Python speichert

Aspose.Slides FOSS for Python saves presentations exclusively to .pptx Format mit prs.save(path, SaveFormat.PPTX).Dieser Leitfaden behandelt das richtige Speichermuster, die Speicheinrichtung und häufige Fehler im Zusammenhang mit der Speichenstellung.

Schritt für Schritte

Schritt 1: Installieren des Pakets

pip install aspose-slides-foss

Schritt 2: Öffnen oder Erstellen einer Präsentation

Verwenden Sie immer den Kontext-Manager. Der Saver Call muss innerhalb der with - Ich bin nicht in der Lage.

import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat

# Create new
with slides.Presentation() as prs:
    prs.save("new.pptx", SaveFormat.PPTX)

# Open existing
with slides.Presentation("input.pptx") as prs:
    prs.save("output.pptx", SaveFormat.PPTX)

Schritt 3: Speichern am Ende der with Block (Block)

Die save() Anrufe als letzte Aussage innerhalb der with Die Kommission hat die Anträge der Mitgliedstaaten in den nächsten Monaten abgeschlossen.

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    slide = prs.slides[0]
    shape = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 300, 100)
    shape.add_text_frame("Hello, World!")
    prs.save("output.pptx", SaveFormat.PPTX)

Schritt 4: Auf einen anderen Weg gehen

Geben Sie einen anderen Ausgangspfad an, um eine neue Datei zu erstellen , ohne das Original zu ändern:

with slides.Presentation("template.pptx") as prs:
    # modify ...
    prs.save("customized.pptx", SaveFormat.PPTX)

Die template.pptx die Datei nicht geändert wird; customized.pptx wird erstellt (oder überschrieben, wenn es bereits existiert).


Schritt 5: Überprüfen Sie die Ausgabe

Nach dem with Block-Ausgänge, die Datei ist vollständig und geschlossen. Überprüfen Sie es existiert:

import os
from pathlib import Path

output = Path("output.pptx")
print(f"Saved: {output.exists()}, size: {output.stat().st_size} bytes")

Unterstütztes Speicherformat

Format der DatenbankWert der Enum-NummerUnterstützt
PPTX (Office Open XML) -Datenbank für die Verwendung von Daten in der WebseiteSaveFormat.PPTX- Ja , das ist gut .
PDFN/A- Nein .
HTMLN/A- Nein .
SVGN/A- Nein .
PNG / JPEGN/A- Nein .
ODP (OpenDocument) - eine Liste der Daten, die für das OpenDokument benötigt werden.N/A- Nein .

Nur PPTX wird unterstützt. Versuchen Sie, in einem anderen Format zu speichern, erhöht sich die Datenrate von NotImplementedError oder ein nicht unterstützter Formatfehler.


Häufige Probleme und Lösungen

PermissionError: [Errno 13] Permission denied

Die Ausgabedatei ist in einer anderen Anwendung geöffnet (z. B. PowerPoint hat die Datei gefahren). Schließen Sie die Datei in anderen Anwendungen, bevor Sie sie speichern.

Datei erstellt, aber leer oder beschädigt erscheint

Sicherstellen prs.save() wird im Inneren der with Die Kommission hat die Frage der Verringerung des with Die Ausgangssperren, die Presentation Objekt wird entsorgt und nachfolgende Anrufe werden schweigend fehlschlagen oder einen Fehler erzeugen.

NotImplementedError bei der Sparung

Dies geschieht, wenn ein anderes Format als PPTX gespeichert wird oder wenn während des Speicherns eine nicht unterstützte Funktion (wie Diagramme oder Animationen) verwendet wird.


Häufig gestellte Fragen

Kann ich in die gleiche Datei speichern, die ich geöffnet habe?

Wenn man die Datei auf den gleichen Pfad speichert, wird sie überschrieben.:

with slides.Presentation("deck.pptx") as prs:
    # modify ...
    prs.save("deck.pptx", SaveFormat.PPTX)  # overwrites original

Kann ich in einen Byte-Puffer speichern anstatt einer Datei?

Ja, eine Pass-Anzeige. io.BytesIO Gegenstand der prs.save() es akzeptiert jede BinaryIO Bestimmungsort:

import io
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat

buf = io.BytesIO()
with slides.Presentation() as prs:
    # ... modify presentation ...
    prs.save(buf, SaveFormat.PPTX)

pptx_bytes = buf.getvalue()

Bewahrt das Speichern Inhalte, die ich nicht geändert habe?

Ja. Unbekannte XML-Teile aus der Originaldatei werden wörtlich erhalten. Die Bibliothek serialisiert nur die Teile des Dokumentmodells, das sie versteht, und führt alle nicht erkannten XML durch.


Siehe auch:

 Deutsch