Come caricare presentazioni in Java
Aspose.Slides FOSS for Java consente di aprire qualsiasi file .pptx, ispezionarne il contenuto e salvarlo nuovamente in PPTX o estrarre i dati da esso. Questa guida copre l’apertura di un file, l’iterazione delle diapositive, la lettura del testo delle forme e il round‑tripping del salvataggio.
Guida passo-passo
Passo 1: Aggiungi la dipendenza Maven
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Passo 2: Apri una presentazione esistente
Passa il percorso del file al costruttore Presentation. Usa try-with-resources per garantire la pulizia.
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);
}Le parti XML sconosciute nel file di origine vengono conservate alla lettera: la libreria non rimuove mai contenuti che non comprende ancora.
Passo 3: Ispeziona le diapositive
Itera su tutte le diapositive e stampa il conteggio delle forme:
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");
}
}Passo 4: Leggi il testo della forma
Itera sulle forme e leggi il testo dalle forme che hanno 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());
}
}
}
}
}Passo 5: Leggi le proprietà del documento
Accedi alle proprietà principali del documento da 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());
}Passo 6: Salvataggio round‑trip
Dopo aver ispezionato o modificato la presentazione, salvala nuovamente in PPTX:
prs.save("output.pptx", SaveFormat.PPTX);Salvare in un percorso diverso crea un nuovo file. Salvare nello stesso percorso sovrascrive l’originale.
Problemi comuni e soluzioni
java.io.FileNotFoundException
Verifica che il percorso al file .pptx sia corretto rispetto alla directory di lavoro. Usa java.nio.file.Paths per una costruzione del percorso 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 libreria supporta solo .pptx (Office Open XML). I file legacy .ppt (PowerPoint binario 97-2003) non sono supportati.
Le forme non hanno il metodo getTextFrame()
Alcune forme (Connectors, PictureFrames, GroupShapes) non hanno un riquadro di testo. Verifica con instanceof IAutoShape prima di eseguire il cast e accedere al testo.
Domande Frequenti
Il caricamento preserva tutto il contenuto originale?
Sì. Le parti XML sconosciute vengono conservate alla lettera durante il salvataggio round‑trip. La libreria serializza solo le parti del modello di documento che comprende e passa attraverso qualsiasi XML che non riconosce.
Posso caricare un PPTX protetto da password?
Le presentazioni protette da password (cifrati) non sono supportate in questa edizione.
Il caricamento da un InputStream è supportato?
Sì. Il costruttore Presentation accetta 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());
}