Hoe Presentaties Laden in Java

Hoe Presentaties Laden in Java

Aspose.Slides FOSS for Java stelt je in staat om elk .pptx‑bestand te openen, de inhoud te inspecteren en het vervolgens op te slaan als PPTX of gegevens eruit te extraheren. Deze gids behandelt het openen van een bestand, het itereren door dia’s, het lezen van vormtekst en het round‑tripping van de opslaan.

Stapsgewijze gids

Stap 1: Voeg de Maven-afhankelijkheid toe

<dependency>
  <groupId>org.aspose.slides.foss</groupId>
  <artifactId>aspose-slides-foss</artifactId>
  <version>1.0.0</version>
</dependency>

Stap 2: Open een bestaande presentatie

Geef het bestandspad door aan de Presentation-constructor. Gebruik try-with-resources om opruimen te waarborgen.

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

Onbekende XML-onderdelen in het bronbestand worden letterlijk bewaard: de bibliotheek verwijdert nooit inhoud die ze nog niet begrijpt.


Stap 3: Dia’s inspecteren

Itereer over alle dia’s en print hun aantal vormen:

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

Stap 4: Lees vormtekst

Itereer over vormen en lees tekst van vormen die een TextFrame hebben:

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

Stap 5: Documenteigenschappen lezen

Toegang tot kern documenteigenschappen van 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());
}

Stap 6: Round-Trip Opslaan

Nadat u de presentatie hebt geïnspecteerd of aangepast, sla deze opnieuw op als PPTX:

prs.save("output.pptx", SaveFormat.PPTX);

Opslaan naar een ander pad maakt een nieuw bestand aan. Opslaan naar hetzelfde pad overschrijft het origineel.


Veelvoorkomende problemen en oplossingen

java.io.FileNotFoundException

Controleer of het pad naar het .pptx‑bestand correct is ten opzichte van de werkmap. Gebruik java.nio.file.Paths voor robuuste padconstructie:

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

De bibliotheek ondersteunt alleen .pptx (Office Open XML). Legacy .ppt (binaire PowerPoint 97-2003) bestanden worden niet ondersteund.

Shapes hebben geen getTextFrame() methode

Sommige vormen (Connectors, PictureFrames, GroupShapes) hebben geen tekstframe. Controleer met instanceof IAutoShape voordat u cast en toegang krijgt tot tekst.


Veelgestelde vragen

Behoudt het laden alle oorspronkelijke inhoud?

Ja. Onbekende XML-onderdelen worden letterlijk bewaard bij een round‑trip‑opslaan. De bibliotheek serialiseert alleen de delen van het documentmodel die hij begrijpt, en laat elk XML-onderdeel dat hij niet herkent onveranderd door.

Kan ik een met wachtwoord beveiligde PPTX laden?

Wachtwoordbeveiligde (versleutelde) presentaties worden niet ondersteund in deze editie.

Is laden vanuit een InputStream ondersteund?

Ja. De Presentation constructor accepteert een InputStream:

import java.io.FileInputStream;

try (FileInputStream fis = new FileInputStream("deck.pptx");
     Presentation prs = new Presentation(fis)) {
    System.out.println("Slides: " + prs.getSlides().size());
}

Zie ook

 Nederlands