Hur man laddar presentationer i Java

Hur man laddar presentationer i Java

Aspose.Slides FOSS for Java låter dig öppna vilken .pptx-fil som helst, inspektera dess innehåll och antingen spara den tillbaka till PPTX eller extrahera data från den. Denna guide täcker att öppna en fil, iterera bilder, läsa formtext och round‑tripping‑sparandet.

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 formantal:

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 grundläggande dokumentegenskaper 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: Rundresesparning

Efter att ha granskat eller ändrat 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 den ursprungliga.


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öder endast .pptx (Office Open XML). Äldre .ppt (binära PowerPoint 97-2003) filer stöds inte.

Shapes har ingen getTextFrame()-metod

Vissa former (Connectors, PictureFrames, GroupShapes) har ingen textram. Kontrollera med instanceof IAutoShape innan du castar och får åtkomst till texten.


Vanliga frågor

Bevarar laddning all ursprungligt innehåll?

Ja. Okända XML‑delar bevaras ordagrant vid rundresurs‑sparning. Biblioteket serialiserar endast de delar av dokumentmodellen som det förstår och låter igenom all XML som det inte känner igen.

Kan jag ladda 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. 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());
}

Se även

 Svenska