Hur man laddar presentationer i Java

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

Se även

 Svenska