Hoe Presentaties Laden in Java
Aspose.Slides FOSS for Java stelt je in staat om elk .pptx‑bestand te openen, de inhoud te inspecteren en het vervolgens op te slaan als PPTX of gegevens eruit te extraheren. Deze gids behandelt het openen van een bestand, het itereren door dia’s, het lezen van vormtekst en het round‑tripping van de opslaan.
Stapsgewijze gids
Stap 1: Voeg de Maven-afhankelijkheid toe
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Stap 2: Open een bestaande presentatie
Geef het bestandspad door aan de Presentation-constructor. Gebruik try-with-resources om opruimen te waarborgen.
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);
}Onbekende XML-onderdelen in het bronbestand worden letterlijk bewaard: de bibliotheek verwijdert nooit inhoud die ze nog niet begrijpt.
Stap 3: Dia’s inspecteren
Itereer over alle dia’s en print hun aantal vormen:
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");
}
}Stap 4: Lees vormtekst
Itereer over vormen en lees tekst van vormen die een TextFrame hebben:
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());
}
}
}
}
}Stap 5: Documenteigenschappen lezen
Toegang tot kern documenteigenschappen van 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());
}Stap 6: Round-Trip Opslaan
Nadat u de presentatie hebt geïnspecteerd of aangepast, sla deze opnieuw op als PPTX:
prs.save("output.pptx", SaveFormat.PPTX);Opslaan naar een ander pad maakt een nieuw bestand aan. Opslaan naar hetzelfde pad overschrijft het origineel.
Veelvoorkomende problemen en oplossingen
java.io.FileNotFoundException
Controleer of het pad naar het .pptx‑bestand correct is ten opzichte van de werkmap. Gebruik java.nio.file.Paths voor robuuste padconstructie:
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
De bibliotheek ondersteunt alleen .pptx (Office Open XML). Legacy .ppt (binaire PowerPoint 97-2003) bestanden worden niet ondersteund.
Shapes hebben geen getTextFrame() methode
Sommige vormen (Connectors, PictureFrames, GroupShapes) hebben geen tekstframe. Controleer met instanceof IAutoShape voordat u cast en toegang krijgt tot tekst.
Veelgestelde vragen
Behoudt het laden alle oorspronkelijke inhoud?
Ja. Onbekende XML-onderdelen worden letterlijk bewaard bij een round‑trip‑opslaan. De bibliotheek serialiseert alleen de delen van het documentmodel die hij begrijpt, en laat elk XML-onderdeel dat hij niet herkent onveranderd door.
Kan ik een met wachtwoord beveiligde PPTX laden?
Wachtwoordbeveiligde (versleutelde) presentaties worden niet ondersteund in deze editie.
Is laden vanuit een InputStream ondersteund?
Ja. De Presentation constructor accepteert een InputStream:
import java.io.FileInputStream;
try (FileInputStream fis = new FileInputStream("deck.pptx");
Presentation prs = new Presentation(fis)) {
System.out.println("Slides: " + prs.getSlides().size());
}