Com carregar presentacions a Java

Com carregar presentacions a Java

Aspose.Slides FOSS for Java lets you open any .pptx fitxer, inspeccioneu el seu contingut i deseu-lo de nou a PPTX o extraieu-ne dades. Aquesta guia cobreix l’obertura d’un fitxer, la iteració de les diapositives, la lectura del text de les formes i el procés de desar de nou.

Guia pas a pas

Pas 1: Afegeix la dependència Maven

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

Pas 2: Obre una presentació existent

Passeu la ruta del fitxer al Presentation constructor. Utilitzeu try-with-resources per garantir la neteja.

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

Les parts XML desconegudes del fitxer d’origen es conserven literalment: la biblioteca mai elimina contingut que encara no entén.


Pas 3: Inspecciona les diapositives

Itera sobre totes les diapositives i imprimeix el nombre de formes:

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

Pas 4: Llegeix el text de les formes

Itereu sobre les formes i llegiu el text de les formes que tenen un 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());
                }
            }
        }
    }
}

Pas 5: Llegeix les propietats del document

Accediu a les propietats principals del document des de 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());
}

Pas 6: Desament d’anar i tornar

Després d’inspeccionar o modificar la presentació, desa-la de nou a PPTX:

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

Desar a un camí diferent crea un fitxer nou. Desar al mateix camí sobrescriu l’original.


Problemes comuns i solucions

java.io.FileNotFoundException

Comproveu que la ruta cap al .pptx fitxer és correcta respecte al directori de treball. Utilitzeu java.nio.file.Paths per a una construcció robusta de rutes:

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

La biblioteca admet .pptx (Office Open XML) només. Les antigues .ppt (binary PowerPoint 97-2003) no són compatibles.

Les formes no tenen el mètode getTextFrame()

Algunes formes (Connectors, PictureFrames, GroupShapes) no tenen un marc de text. Comproveu amb instanceof IAutoShape abans de fer el casting i accedir al text.


Preguntes freqüents

La càrrega conserva tot el contingut original?

Sí. Les parts XML desconegudes es conserven literalment en el desament d’anada i tornada. La biblioteca només serialitza les parts del model del document que entén i transmet sense modificar cap XML que no reconeix.

Puc carregar un PPTX protegit per contrasenya?

Les presentacions protegides amb contrasenya (encriptades) no són compatibles en aquesta edició.

Es suporta la càrrega des d’un InputStream?

Sí. El Presentation constructor accepta un InputStream:

import java.io.FileInputStream;

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

Vegeu també

 Català