Präsentationen in Python speichern
Übersicht
Nachdem Sie eine Präsentation erstellt oder eine vorhandene öffnen, verwenden Sie die Presentation.save‑Methode, um das Ergebnis zu schreiben. Aspose.Slides für Python via .NET kann eine Präsentation in einer Datei oder einem Stream im PowerPoint-, OpenDocument-, PDF‑ und anderen Formaten speichern. Die folgenden Abschnitte beschreiben die Standard‑Speichervorgänge und die für PPTX‑Ausgaben verfügbaren Optionen.
Präsentationen in Dateien speichern
Um eine Präsentation in einer Datei zu speichern, übergeben Sie den Ausgabepfad und einen SaveFormat‑Wert an die Presentation.save‑Methode. Der Formatwert bestimmt, welchen Dateityp Aspose.Slides erstellt.
Das folgende Beispiel erstellt eine Präsentation und speichert sie als PPTX‑Datei:
import aspose.slides as slides
with slides.Presentation() as presentation:
# Präsentationsinhalt hier hinzufügen oder ändern.
presentation.save("Output.pptx", slides.export.SaveFormat.PPTX)
Präsentationen im Originalformat speichern
Für Beispiele zur Datei‑ und Stream‑Erkennung, das Verhalten neu erstellter Präsentationen und den Unterschied zwischen Quell‑ und Ausgabeformaten siehe Determine the Original Presentation Format.
In einer Batch‑Verarbeitungsanwendung ist das Eingabeformat möglicherweise nicht im Voraus bekannt. Nach dem Laden einer Datei lesen Sie das Originalformat aus der Eigenschaft Presentation.source_format. Übergeben Sie den resultierenden SourceFormat‑Wert an SlideUtil.to_save_format, um den entsprechenden SaveFormat‑Wert zu erhalten, und verwenden Sie anschließend Presentation.save, um die geänderte Präsentation zu schreiben.
Das folgende vollständige Beispiel verarbeitet jede Datei in einem Eingabeverzeichnis, aktualisiert deren Titel und speichert sie in ein Ausgabeverzeichnis im Format, aus dem sie geladen wurde:
from pathlib import Path
import aspose.slides as slides
from aspose.slides.util import SlideUtil
input_directory = Path("Input")
output_directory = Path("Output")
output_directory.mkdir(exist_ok=True)
for input_path in input_directory.iterdir():
if not input_path.is_file():
continue
try:
with slides.Presentation(str(input_path)) as presentation:
source_format = presentation.source_format
save_format = SlideUtil.to_save_format(source_format)
presentation.document_properties.title = "Processed by the batch application"
output_path = output_directory / input_path.name
presentation.save(str(output_path), save_format)
except Exception as exception:
print(f"Cannot process '{input_path}': {exception}")
SlideUtil.to_save_format ordnet PPT, PPTX, ODP, PPTM, PPSX, PPSM, POTX, POTM, PPS, POT, OTP, FODP und PowerPoint‑XML ihren jeweiligen Präsentations‑Speicherformaten zu. Es mappt nur Präsentations‑Quellformate; es ist nicht dazu gedacht, Exportformate wie PDF, HTML, TIFF oder Bilder auszuwählen. Die Übergabe eines nicht unterstützten oder ungültigen SourceFormat‑Werts löst eine Ausnahme aus.
Legacy‑PPT, PPS und POT‑Dateien verwenden denselben binären Container. Wenn eine solche Präsentation aus einem Stream ohne Dateierweiterung geladen wird, kann eine PPS‑ oder POT‑Datei daher als PPT identifiziert werden. Wenn das Beibehalten dieser alten Subtypen erforderlich ist, bewahren Sie den ursprünglichen Dateinamen oder Metadaten des Formats separat auf und verwenden Sie diese bei der Auswahl des Ausgabedateinamens und -formats.
Präsentationen in Streams speichern
Um eine Präsentation zu schreiben, ohne sich auf einen endgültigen Dateipfad zu verlassen, übergeben Sie einen beschreibbaren BinaryIO‑Stream und einen SaveFormat‑Wert an die Presentation.save‑Methode. Dieser Ansatz ist nützlich, wenn die Ausgabe von einem Web‑Service zurückgegeben, in einer Datenbank gespeichert oder im Speicher verarbeitet werden muss.
Das folgende Beispiel speichert eine neue Präsentation in einen Dateistream:
import aspose.slides as slides
with slides.Presentation() as presentation:
with open("Output.pptx", "wb") as output_stream:
presentation.save(output_stream, slides.export.SaveFormat.PPTX)
Präsentationen mit vordefiniertem Ansichtstyp speichern
Sie können angeben, in welcher Ansicht PowerPoint eine gespeicherte Präsentation zunächst öffnet. Setzen Sie vor dem Speichern die Eigenschaft ViewProperties.last_view auf einen ViewType‑Wert.
Das folgende Beispiel konfiguriert die Folienmaster‑Ansicht als Anfangsansicht:
import aspose.slides as slides
with slides.Presentation() as presentation:
presentation.view_properties.last_view = slides.ViewType.SLIDE_MASTER_VIEW
presentation.save("SlideMasterView.pptx", slides.export.SaveFormat.PPTX)
Präsentationen im Strict‑Office‑Open‑XML‑Format speichern
Um eine PPTX‑Datei zu erzeugen, die dem Strict‑Profil von Office Open XML entspricht, erstellen Sie eine PptxOptions‑Instanz und setzen deren conformance‑Eigenschaft auf Conformance.ISO_29500_2008_STRICT. Übergeben Sie dann die Optionen an die Presentation.save‑Methode.
import aspose.slides as slides
options = slides.export.PptxOptions()
options.conformance = slides.export.Conformance.ISO_29500_2008_STRICT
with slides.Presentation() as presentation:
presentation.save("StrictOfficeOpenXml.pptx", slides.export.SaveFormat.PPTX, options)
Präsentationen im Office‑Open‑XML‑Format im Zip64‑Modus speichern
Ein Standard‑ZIP‑Archiv begrenzt die komprimierte und unkomprimierte Größe jedes Eintrags, die Gesamtarchivgröße und die Anzahl der Einträge. Da eine PPTX‑Datei ein ZIP‑Archiv ist, kann eine sehr große Präsentation diese Grenzen überschreiten. ZIP64‑Erweiterungen heben die jeweiligen Größen‑ und Eintragszähl‑Grenzen auf.
Verwenden Sie die Eigenschaft PptxOptions.zip_64_mode, um zu steuern, ob Aspose.Slides ZIP64‑Erweiterungen schreibt:
IF_NECESSARYverwendet ZIP64 nur, wenn die Präsentation die Standard‑ZIP‑Grenzen überschreitet. Dies ist der Standardmodus.NEVERdeaktiviert ZIP64‑Erweiterungen.ALWAYSschreibt immer ZIP64‑Erweiterungen.
Das folgende Beispiel aktiviert ZIP64‑Erweiterungen für die Ausgabepäsentation stets:
import aspose.slides as slides
with slides.Presentation("Sample.pptx") as presentation:
options = slides.export.PptxOptions()
options.zip_64_mode = slides.export.Zip64Mode.ALWAYS
presentation.save("OutputZip64.pptx", slides.export.SaveFormat.PPTX, options)
Warning
WennZip64Mode.NEVER verwendet wird und die Präsentation nicht in die Standard‑ZIP‑Grenzen passt, löst der Speicher‑Vorgang eine PptxException aus.
Präsentationen im Office‑Open‑XML‑Format mit Komprimierungsstufen speichern
Für PPTX‑Ausgaben können Sie die Speicher‑Geschwindigkeit gegen die Dateigröße abwägen, indem Sie die Eigenschaft PptxOptions.compression_level setzen. Die Aufzählung CompressionLevel liefert folgende Werte:
NONEspeichert Daten ohne Kompression.LEVEL1liefert die schnellste Kompression und die größte komprimierte Ausgabe.LEVEL2bisLEVEL5bevorzugen sukzessive kleinere Ausgaben gegenüber der Speichergeschwindigkeit.LEVEL6balanciert Speichergeschwindigkeit und Dateigröße. Dies ist die Standardstufe.LEVEL7undLEVEL8favorisieren kleinere Ausgaben stärker als die Geschwindigkeit.LEVEL9bietet die stärkste Kompression und benötigt die meiste Verarbeitungszeit.
Das folgende Beispiel speichert eine Präsentation ohne Kompression:
import aspose.slides as slides
with slides.Presentation("Sample.pptx") as presentation:
options = slides.export.PptxOptions()
options.compression_level = slides.export.CompressionLevel.NONE
presentation.save("OutputNoCompression.pptx", slides.export.SaveFormat.PPTX, options)
Das folgende Beispiel verwendet die maximale Komprimierungsstufe:
import aspose.slides as slides
with slides.Presentation("Sample.pptx") as presentation:
options = slides.export.PptxOptions()
options.compression_level = slides.export.CompressionLevel.LEVEL9
presentation.save("OutputMaximumCompression.pptx", slides.export.SaveFormat.PPTX, options)
Präsentationen ohne Aktualisieren des Thumbnails speichern
Wenn eine Präsentation als PPTX gespeichert wird, steuert die Eigenschaft PptxOptions.refresh_thumbnail ihr Dokument‑Thumbnail:
Truegeneriert das Thumbnail während des Speicher‑Vorgangs neu. Dies ist der Standardwert.Falsebewahrt das vorhandene Thumbnail. Hat die Präsentation kein Thumbnail, erzeugt Aspose.Slides keins.
Das folgende Beispiel speichert eine Präsentation, ohne ihr Thumbnail zu aktualisieren:
import aspose.slides as slides
with slides.Presentation("Sample.pptx") as presentation:
options = slides.export.PptxOptions()
options.refresh_thumbnail = False
presentation.save("Output.pptx", slides.export.SaveFormat.PPTX, options)
Note
Das Deaktivieren der Thumbnail‑Aktualisierung kann die zum Speichern einer PPTX‑Datei benötigte Zeit verkürzen.Note
Aspose bietet einen kostenlosen PowerPoint Splitter an, der mit der Aspose.Slides‑API gebaut wurde. Er speichert ausgewählte Folien einer Präsentation als separate PPT‑ oder PPTX‑Dateien.FAQ
Unterstützt Aspose.Slides inkrementelles oder „Fast Save“?
Nein. Jeder Speicher‑Vorgang schreibt eine vollständige Ausgabedatei, anstatt nur die geänderten Teile zu aktualisieren.
Können mehrere Threads dieselbe Presentation‑Instanz speichern?
Nein. Eine Presentation‑Instanz ist nicht threadsicher. Greifen Sie von jeweils nur einem Thread aus zu und speichern Sie sie dort.
Was passiert mit Hyperlinks und extern verknüpften Dateien, wenn ich eine Präsentation speichere?
Hyperlinks bleiben in der Präsentation erhalten. Aspose.Slides kopiert extern verknüpfte Dateien nicht, sodass die gespeicherte Präsentation weiterhin auf deren Speicherorte zugreifen muss.
Kann ich Dokument‑Metadaten wie Autor, Titel, Unternehmen und Erstellungsdatum speichern?
Ja. Setzen Sie die entsprechenden Dokument‑Eigenschaften vor dem Speichern, und Aspose.Slides schreibt sie in die Ausgabedatei.