Sådan indlæses præsentationer i Java
Aspose.Slides FOSS for Java lets you open any .pptx fil, inspicér dens indhold, og gem den enten tilbage som PPTX eller udtræk data fra den. Denne vejledning dækker åbning af en fil, iteration over 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
Send filstien til Presentation konstruktør. 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, det endnu ikke forstår.
Trin 3: Inspicer slides
Iterer over alle slides og udskriv deres antal 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 kerne-dokumentegenskaber 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: Round‑Trip‑gemning
Efter at have inspiceret eller modificeret præsentationen, gem den tilbage til 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 fil er korrekt i forhold til arbejdsbiblioteket. Brug java.nio.file.Paths til robust sti‑konstruktion:
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 .pptx (Office Open XML) kun. Ældre .ppt (binære PowerPoint 97-2003) filer understøttes ikke.
Former 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 originale indhold?
Ja. Ukendte XML‑dele bevares ordret ved gemning i en runde‑tur. Biblioteket serialiserer kun de dele af dokumentmodellen, det forstår, og videresender al XML, det ikke genkender.
Kan jeg indlæse en adgangskodebeskyttet PPTX?
Adgangskodebeskyttede (krypterede) præsentationer understøttes ikke i denne udgave.
Understøttes indlæsning fra en InputStream?
Ja. Den Presentation konstruktør 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());
}