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