Wie man Präsentationen in Java lädt
Aspose.Slides FOSS for Java lets you open any .pptx Datei, prüfen Sie ihren Inhalt und speichern Sie sie entweder wieder als PPTX oder extrahieren Sie Daten daraus. Diese Anleitung behandelt das Öffnen einer Datei, das Durchlaufen von Folien, das Lesen von Formtexten und das Round‑Trip‑Speichern.
Schritt-für-Schritt-Anleitung
Schritt 1: Maven‑Abhängigkeit hinzufügen
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Schritt 2: Eine vorhandene Präsentation öffnen
Übergeben Sie den Dateipfad an die Presentation Konstruktor. Verwenden Sie try-with-resources, um die Bereinigung sicherzustellen.
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IShape;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IDocumentProperties;
import org.aspose.slides.foss.export.SaveFormat;
try (Presentation prs = new Presentation("input.pptx")) {
System.out.println("Slide count: " + prs.getSlides().size());
prs.save("output.pptx", SaveFormat.PPTX);
}Unbekannte XML‑Teile in der Quelldatei werden unverändert beibehalten: Die Bibliothek entfernt niemals Inhalte, die sie noch nicht versteht.
Schritt 3: Folien untersuchen
Durchlaufen Sie alle Folien und geben Sie deren Formanzahl aus:
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IShape;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IDocumentProperties;
import org.aspose.slides.foss.export.SaveFormat;
try (Presentation prs = new Presentation("deck.pptx")) {
for (int i = 0; i < prs.getSlides().size(); i++) {
ISlide slide = prs.getSlides().get(i);
int shapeCount = slide.getShapes().size();
System.out.println("Slide " + i + ": " + shapeCount + " shapes");
}
}Schritt 4: Formtext lesen
Iterieren Sie über Formen und lesen Sie Text aus Formen, die ein TextFrame:
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IShape;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IDocumentProperties;
import org.aspose.slides.foss.export.SaveFormat;
try (Presentation prs = new Presentation("deck.pptx")) {
for (ISlide slide : prs.getSlides()) {
for (IShape shape : slide.getShapes()) {
if (shape instanceof IAutoShape) {
IAutoShape autoShape = (IAutoShape) shape;
ITextFrame tf = autoShape.getTextFrame();
if (tf != null && !tf.getText().isEmpty()) {
System.out.println(" Shape text: " + tf.getText());
}
}
}
}
}Schritt 5: Dokumenteigenschaften lesen
Greifen Sie auf die Kerndokumenteigenschaften von prs.getDocumentProperties():
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IShape;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IDocumentProperties;
import org.aspose.slides.foss.export.SaveFormat;
try (Presentation prs = new Presentation("deck.pptx")) {
IDocumentProperties props = prs.getDocumentProperties();
System.out.println("Title: " + props.getTitle());
System.out.println("Author: " + props.getAuthor());
System.out.println("Subject: " + props.getSubject());
}Schritt 6: Round‑Trip‑Speichern
Nachdem Sie die Präsentation untersucht oder geändert haben, speichern Sie sie wieder als PPTX:
prs.save("output.pptx", SaveFormat.PPTX);Das Speichern an einen anderen Pfad erstellt eine neue Datei. Das Speichern am selben Pfad überschreibt die Originaldatei.
Häufige Probleme und Lösungen
java.io.FileNotFoundException
Prüfen Sie, dass der Pfad zu dem .pptx Datei relativ zum Arbeitsverzeichnis korrekt ist. Verwenden Sie java.nio.file.Paths für eine robuste Pfadkonstruktion:
import java.nio.file.Path;
import java.nio.file.Paths;
Path path = Paths.get("assets", "deck.pptx");
try (Presentation prs = new Presentation(path.toString())) {
// ...
}Exception: File format is not supported
Die Bibliothek unterstützt .pptx (Office Open XML) nur. Legacy .ppt (binary PowerPoint 97-2003) Dateien werden nicht unterstützt.
Formen besitzen keine getTextFrame()-Methode
Einige Formen (Connectors, PictureFrames, GroupShapes) haben keinen Textrahmen. Prüfen Sie mit instanceof IAutoShape bevor Sie casten und auf Text zugreifen.
Häufig gestellte Fragen
Wird beim Laden der gesamte Originalinhalt erhalten?
Ja. Unbekannte XML‑Teile werden beim Rundreise‑Speichern unverändert beibehalten. Die Bibliothek serialisiert nur die Teile des Dokumentmodells, die sie versteht, und lässt jedes XML, das sie nicht erkennt, unverändert durch.
Kann ich ein passwortgeschütztes PPTX laden?
Passwortgeschützte (verschlüsselte) Präsentationen werden in dieser Edition nicht unterstützt.
Wird das Laden aus einem InputStream unterstützt?
Ja. Der Presentation Konstruktor akzeptiert ein InputStream:
import java.io.FileInputStream;
try (FileInputStream fis = new FileInputStream("deck.pptx");
Presentation prs = new Presentation(fis)) {
System.out.println("Slides: " + prs.getSlides().size());
}