Hur man laddar presentationer i Java
Aspose.Slides FOSS for Java lets you open any .pptx fil, inspektera dess innehåll och antingen spara tillbaka till PPTX eller extrahera data från den. Denna guide täcker att öppna en fil, iterera bilder, läsa formtext och att round‑trip‑spara.
Steg-för-steg-guide
Steg 1: Lägg till Maven‑beroendet
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Steg 2: Öppna en befintlig presentation
Skicka filvägen till Presentation konstruktorn. Använd try-with-resources för att säkerställa städning.
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);
}Okända XML‑delar i källfilen bevaras ordagrant: biblioteket tar aldrig bort innehåll som det ännu inte förstår.
Steg 3: Inspektera bilder
Iterera över alla bilder och skriv ut deras 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");
}
}Steg 4: Läs formtext
Iterera över former och läs text från former som 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());
}
}
}
}
}Steg 5: Läs dokumentegenskaper
Åtkomst till kärndokumentegenskaper från 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());
}Steg 6: Round‑Trip‑sparning
Efter att ha inspekterat eller modifierat presentationen, spara den tillbaka till PPTX:
prs.save("output.pptx", SaveFormat.PPTX);Att spara till en annan sökväg skapar en ny fil. Att spara till samma sökväg skriver över originalet.
Vanliga problem och lösningar
java.io.FileNotFoundException
Kontrollera att sökvägen till .pptx filen är korrekt i förhållande till arbetskatalogen. Använd java.nio.file.Paths för robust sökvägskonstruktion:
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 stödjer .pptx (Office Open XML) endast. Äldre .ppt (binära PowerPoint 97-2003) filer stöds inte.
Former har ingen getTextFrame()-metod
Vissa former (Connectors, PictureFrames, GroupShapes) har ingen textruta. Kontrollera med instanceof IAutoShape innan du castar och får åtkomst till text.
Vanliga frågor
Behåller inläsning allt originalinnehåll?
Ja. Okända XML-delar bevaras ordagrant vid rundresa‑sparning. Biblioteket serialiserar endast de delar av dokumentmodellen som det förstår, och vidarebefordrar all XML som det inte känner igen.
Kan jag läsa in en lösenordsskyddad PPTX?
Lösenordsskyddade (krypterade) presentationer stöds inte i den här utgåvan.
Stöds inläsning från en InputStream?
Ja. Den Presentation konstruktorn accepterar 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());
}