Sådan indlæses præsentationer i Java

Sådan indlæses præsentationer i Java

Aspose.Slides FOSS for Java lader dig åbne enhver .pptx fil, inspicere dens indhold, og enten gemme den tilbage til PPTX eller udtrække data fra den. Denne guide dækker åbning af en fil, iteration af slides, læsning af formtekst og round‑tripping af gemningen.

Trin-for-trin guide

Trin 1: Tilføj Maven-afhængigheden

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

Trin 2: Åbn en eksisterende præsentation

Videregiv filstien til Presentation-konstruktøren. Brug try-with-resources for at sikre oprydning.

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

Ukendte XML-dele i kildefilen bevares ordret: biblioteket fjerner aldrig indhold, som det endnu ikke forstår.


Trin 3: Inspicér dias

Iterer over alle slides og udskriv antallet af former:

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

Trin 4: Læs formtekst

Iterer over former og læs tekst fra former, der har en 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());
                }
            }
        }
    }
}

Trin 5: Læs dokumentegenskaber

Få adgang til kerndokumentegenskaber fra 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());
}

Trin 6: Rundtur‑gem

Efter at have inspiceret eller ændret præsentationen, gem den tilbage som PPTX:

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

Gemning til en anden sti opretter en ny fil. Gemning til den samme sti overskriver den oprindelige.


Almindelige problemer og løsninger

java.io.FileNotFoundException

Kontroller, at stien til .pptx-filen er korrekt i forhold til arbejdsbiblioteket. Brug java.nio.file.Paths til robust stiopbygning:

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

Biblioteket understøtter kun .pptx (Office Open XML). Ældre .ppt (binære PowerPoint 97-2003) filer understøttes ikke.

Shapes har ingen getTextFrame() metode

Nogle former (Connectors, PictureFrames, GroupShapes) har ingen tekstramme. Tjek med instanceof IAutoShape før du caster og får adgang til tekst.


Ofte stillede spørgsmål

Bevarer indlæsning alt det oprindelige indhold?

Ja. Ukendte XML-dele bevares ordret ved round-trip save. Biblioteket serialiserer kun de dele af dokumentmodellen, det forstår, og sender igennem enhver XML, den ikke genkender.

Kan jeg indlæse en adgangskodebeskyttet PPTX?

Adgangskodebeskyttede (krypterede) præsentationer understøttes ikke i denne udgave.

Er indlæsning fra en InputStream understøttet?

Ja. Presentation-konstruktøren accepterer en InputStream:

import java.io.FileInputStream;

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

Se også

 Dansk