Com carregar presentacions a Java

Com carregar presentacions a Java

Aspose.Slides FOSS for Java us permet obrir qualsevol fitxer .pptx, inspeccionar-ne el contingut i, o bé desar-lo de nou a PPTX o extreure’n 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 i tornar a carregar.

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 constructor Presentation. 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 al fitxer font 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: Llegir el text de la forma

Itera sobre les formes i llegeix 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: Llegir 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: Desar d’anada i tornada

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

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

Desar a una ruta diferent crea un fitxer nou. Desar a la mateixa ruta sobrescriu l’original.


Problemes comuns i solucions

java.io.FileNotFoundException

Comproveu que el camí cap al fitxer .pptx és correcte respecte al directori de treball. Utilitzeu java.nio.file.Paths per a una construcció de camins robusta:

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 només admet .pptx (Office Open XML). No s’admeten fitxers antics .ppt (PowerPoint binari 97-2003).

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 una guardada de viatge d’anada i tornada. La biblioteca només serialitza les parts del model del document que entén i passa a través de qualsevol XML que no reconeix.

Puc carregar un PPTX protegit amb contrasenya?

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

És compatible la càrrega des d’un InputStream?

Sí. El constructor Presentation 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à