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-fossSchritt 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 Datenbank | Wert der Enum-Nummer | Unterstützt |
|---|---|---|
| PPTX (Office Open XML) -Datenbank für die Verwendung von Daten in der Webseite | SaveFormat.PPTX | - Ja , das ist gut . |
| N/A | - Nein . | |
| HTML | N/A | - Nein . |
| SVG | N/A | - Nein . |
| PNG / JPEG | N/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 originalKann 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.