Wie man Präsentationen in Java lädt

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());
}

Siehe auch

 Deutsch