Präsentationen in Java speichern
Übersicht
Open Presentations in Java beschreibt, wie die Presentation‑Klasse zum Öffnen einer Präsentation verwendet wird. Dieser Artikel erklärt, wie Präsentationen erstellt und gespeichert werden. Die Presentation‑Klasse enthält den Inhalt einer Präsentation. Egal, ob Sie eine Präsentation von Grund auf neu erstellen oder eine bestehende ändern, Sie möchten sie am Ende speichern. Mit Aspose.Slides for Java können Sie in eine Datei oder einen Stream speichern. Dieser Artikel erklärt die verschiedenen Möglichkeiten, eine Präsentation zu speichern.
Präsentationen in Dateien speichern
Speichern Sie eine Präsentation in einer Datei, indem Sie die save‑Methode der Presentation‑Klasse aufrufen. Übergeben Sie den Dateinamen und das Speicherformat an die Methode. Das folgende Beispiel zeigt, wie eine Präsentation mit Aspose.Slides gespeichert wird.
import com.aspose.slides.*;
// Instanziieren Sie die Presentation-Klasse, die eine Präsentationsdatei darstellt.
Presentation presentation = new Presentation();
try {
// Führen Sie hier einige Arbeiten aus...
// Speichern Sie die Präsentation in einer Datei.
presentation.save("Output.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Präsentationen in Streams speichern
Sie können eine Präsentation in einen Stream speichern, indem Sie einen Ausgabestream an die save‑Methode der Presentation‑Klasse übergeben. Eine Präsentation kann in viele Stream‑Typen geschrieben werden. Im Beispiel unten erstellen wir eine neue Präsentation und speichern sie in einen Dateistream.
import com.aspose.slides.*;
import java.io.FileOutputStream;
import java.io.OutputStream;
// Instanziieren Sie die Presentation-Klasse, die eine Präsentationsdatei darstellt.
Presentation presentation = new Presentation();
try {
OutputStream fileStream = new FileOutputStream("Output.pptx");
try {
// Speichern Sie die Präsentation in den Stream.
presentation.save(fileStream, SaveFormat.Pptx);
} finally {
fileStream.close();
}
} finally {
presentation.dispose();
}
Präsentationen mit vordefiniertem Ansichtstyp speichern
Aspose.Slides ermöglicht das Festlegen der anfänglichen Ansicht, die PowerPoint beim Öffnen der erzeugten Präsentation verwendet, über die ViewProperties‑Klasse. Verwenden Sie die setLastView‑Methode mit einem Wert aus der Aufzählung ViewType.
import com.aspose.slides.*;
Presentation presentation = new Presentation();
try {
presentation.getViewProperties().setLastView(ViewType.SlideMasterView);
presentation.save("SlideMasterView.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Präsentationen im Strict Office Open XML‑Format speichern
Aspose.Slides ermöglicht das Speichern einer Präsentation im Strict Office Open XML‑Format. Verwenden Sie die PptxOptions‑Klasse und setzen Sie deren conformance‑Eigenschaft beim Speichern. Wenn Sie Conformance.Iso29500_2008_Strict festlegen, wird die Ausgabedatei im Strict Office Open XML‑Format gespeichert.
Das Beispiel unten erstellt eine Präsentation und speichert sie im Strict Office Open XML‑Format.
import com.aspose.slides.*;
PptxOptions options = new PptxOptions();
options.setConformance(Conformance.Iso29500_2008_Strict);
// Instanziieren Sie die Presentation-Klasse, die eine Präsentationsdatei darstellt.
Presentation presentation = new Presentation();
try {
// Speichern Sie die Präsentation im Strict Office Open XML-Format.
presentation.save("StrictOfficeOpenXml.pptx", SaveFormat.Pptx, options);
} finally {
presentation.dispose();
}
Präsentationen im Office Open XML‑Format im Zip64‑Modus speichern
Eine Office Open XML‑Datei ist ein ZIP‑Archiv, das Grenzen von 4 GB (2^32 Bytes) für die entkomprimierte Größe einer Datei, die komprimierte Größe einer Datei und die gesamte Archivgröße festlegt und zudem die Anzahl der Dateien auf 65 535 (2^16‑1) begrenzt. Die ZIP64‑Formatserweiterungen erhöhen diese Grenzen auf 2^64.
Mit der Methode IPptxOptions.setZip64Mode können Sie festlegen, wann beim Speichern einer Office Open XML‑Datei ZIP64‑Formatserweiterungen verwendet werden.
Diese Methode kann mit den folgenden Modi verwendet werden:
- IfNecessary verwendet ZIP64‑Erweiterungen nur, wenn die Präsentation die oben genannten Beschränkungen überschreitet. Dies ist der Standardmodus.
- Never verwendet niemals ZIP64‑Erweiterungen.
- Always verwendet immer ZIP64‑Erweiterungen.
Der folgende Code zeigt, wie eine Präsentation als PPTX‑Datei mit aktivierten ZIP64‑Erweiterungen gespeichert wird:
import com.aspose.slides.*;
PptxOptions pptxOptions = new PptxOptions();
pptxOptions.setZip64Mode(Zip64Mode.Always);
Presentation presentation = new Presentation("Sample.pptx");
try {
presentation.save("OutputZip64.pptx", SaveFormat.Pptx, pptxOptions);
} finally {
presentation.dispose();
}
NOTE
Wenn Sie mit Zip64Mode.Never speichern, wird eine PptxException ausgelöst, wenn die Präsentation nicht im ZIP32‑Format gespeichert werden kann.Präsentationen im Office Open XML‑Format mit Kompressionsstufen speichern
Bei großen Präsentationen können Sie die Kompressionsstufe anpassen, um Dateigröße und Verarbeitungszeit auszubalancieren. Je nach Anforderung bevorzugen Sie möglicherweise schnellere Verarbeitung oder kleinere Ausgabedateien.
Aspose.Slides bietet die Methode IPptxOptions.setCompressionLevel, mit der Sie die beim Speichern einer Präsentation im Office Open XML‑Format zu verwendende Kompressionsstufe festlegen können.
Die folgenden Kompressionsstufen stehen zur Verfügung:
- None: Es wird keine Kompression angewendet. Dateien werden unverändert gespeichert.
- Level1: Schnellste Kompression mit dem niedrigsten Kompressionsverhältnis.
- Level2: Schnellere Kompression mit leicht besserem Kompressionsverhältnis als Level1.
- Level3: Bietet bessere Kompression als Level2 bei moderatem Einfluss auf die Verarbeitungszeit.
- Level4: Bietet bessere Kompression als Level3.
- Level5: Verbesserte Kompression gegenüber Level4 mit zusätzlicher Verarbeitungszeit.
- Level6: Standardkompression, die ein gutes Gleichgewicht zwischen Verarbeitungsgeschwindigkeit und Dateigröße bietet. Dies ist die Standard‑Kompressionsstufe.
- Level7: Bietet bessere Kompression als Level6 bei langsamerer Verarbeitung.
- Level8: Bietet bessere Kompression als Level7.
- Level9: Maximale Kompression. Produziert die kleinste Dateigröße, kostet jedoch die längste Verarbeitungszeit.
Das folgende Beispiel demonstriert, wie eine Präsentation als PPTX‑Datei ohne Kompression gespeichert wird:
import com.aspose.slides.*;
PptxOptions pptxOptions = new PptxOptions();
pptxOptions.setCompressionLevel(CompressionLevel.None);
Presentation presentation = new Presentation("Sample.pptx");
try {
presentation.save("Sample-out.pptx", SaveFormat.Pptx, pptxOptions);
} finally {
presentation.dispose();
}
Dieses Beispiel zeigt, wie eine Präsentation als PPTX‑Datei mit maximaler Kompression gespeichert wird:
import com.aspose.slides.*;
PptxOptions pptxOptions = new PptxOptions();
pptxOptions.setCompressionLevel(CompressionLevel.Level9);
Presentation presentation = new Presentation("Sample.pptx");
try {
presentation.save("Sample-level9.pptx", SaveFormat.Pptx, pptxOptions);
} finally {
presentation.dispose();
}
Präsentationen speichern, ohne das Thumbnail zu aktualisieren
Die Methode PptxOptions.setRefreshThumbnail steuert die Thumbnail‑Erstellung beim Speichern einer Präsentation im PPTX‑Format:
- Bei
truewird das Thumbnail beim Speichern aktualisiert. Dies ist die Vorgabe. - Bei
falsebleibt das aktuelle Thumbnail erhalten. Hat die Präsentation kein Thumbnail, wird keins erzeugt.
Im nachfolgenden Code wird die Präsentation als PPTX gespeichert, ohne ihr Thumbnail zu aktualisieren.
import com.aspose.slides.*;
PptxOptions pptxOptions = new PptxOptions();
pptxOptions.setRefreshThumbnail(false);
Presentation presentation = new Presentation("Sample.pptx");
try {
presentation.save("Output.pptx", SaveFormat.Pptx, pptxOptions);
}
finally {
presentation.dispose();
}
Info
Diese Option hilft, die zum Speichern einer Präsentation im PPTX‑Format benötigte Zeit zu reduzieren.Speicherfortschritt in Prozent anzeigen
Das Interface IProgressCallback wird über die Methode setProgressCallback verwendet, die vom Interface ISaveOptions und der abstrakten Klasse SaveOptions bereitgestellt wird. Implementieren Sie ein IProgressCallback-Objekt und übergeben Sie es mit setProgressCallback, um Speicherfortschritts‑Updates in Prozent zu erhalten.
Der folgende Code‑Abschnitt zeigt die Verwendung von IProgressCallback.
import com.aspose.slides.*;
class ExportProgressHandler implements IProgressCallback {
public void reporting(double progressValue) {
// Verwenden Sie hier den Fortschritts-Prozentwert.
int progress = (int) progressValue;
System.out.println(progress + "% of the file has been converted.");
}
}
ISaveOptions saveOptions = new PdfOptions();
saveOptions.setProgressCallback(new ExportProgressHandler());
Presentation presentation = new Presentation("Sample.pptx");
try {
presentation.save("Output.pdf", SaveFormat.Pdf, saveOptions);
} finally {
presentation.dispose();
}
Info
Aspose hat eine kostenlose PowerPoint Splitter‑App entwickelt, die seine eigene API nutzt. Die App ermöglicht das Aufteilen einer Präsentation in mehrere Dateien, indem ausgewählte Folien als neue PPTX‑ oder PPT‑Dateien gespeichert werden.FAQ
Wird ein „schnelles“ Speichern (inkrementelles Speichern) unterstützt, sodass nur Änderungen geschrieben werden?
Nein. Beim Speichern wird jedes Mal die vollständige Zieldatei erstellt; ein inkrementelles „schnelles“ Speichern wird nicht unterstützt.
Ist das gleichzeitige Speichern derselben Presentation‑Instanz aus mehreren Threads threadsicher?
Nein. Eine Presentation‑Instanz ist nicht threadsicher; speichern Sie sie aus einem einzelnen Thread.
Was passiert mit Hyperlinks und extern verlinkten Dateien beim Speichern?
Hyperlinks bleiben erhalten. Externe verlinkte Dateien (z. B. Videos über relative Pfade) werden nicht automatisch kopiert – stellen Sie sicher, dass die referenzierten Pfade weiterhin zugänglich sind.
Kann ich Dokument‑Metadaten (Autor, Titel, Firma, Datum) setzen/speichern?
Ja. Standard‑Dokumenteneigenschaften werden unterstützt und beim Speichern in die Datei geschrieben.