Comment charger des présentations en Java
Aspose.Slides FOSS for Java vous permet d’ouvrir n’importe quel fichier .pptx, d’inspecter son contenu, et soit de l’enregistrer à nouveau au format PPTX, soit d’en extraire les données. Ce guide couvre l’ouverture d’un fichier, l’itération des diapositives, la lecture du texte des formes et le round‑tripping de l’enregistrement.
Guide étape par étape
Étape 1 : Ajouter la dépendance Maven
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Étape 2 : Ouvrir une présentation existante
Passez le chemin du fichier au constructeur Presentation. Utilisez try-with-resources pour garantir le nettoyage.
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 parties XML inconnues dans le fichier source sont conservées mot pour mot : la bibliothèque ne supprime jamais le contenu qu’elle ne comprend pas encore.
Étape 3 : Inspecter les diapositives
Itérer sur toutes les diapositives et afficher le 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");
}
}Étape 4 : Lire le texte de la forme
Itérer sur les formes et lire le texte des formes qui ont 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());
}
}
}
}
}Étape 5 : Lire les propriétés du document
Accéder aux propriétés principales du document depuis 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());
}Étape 6: Enregistrement en aller-retour
Après avoir inspecté ou modifié la présentation, enregistrez‑la à nouveau au format PPTX :
prs.save("output.pptx", SaveFormat.PPTX);Enregistrer dans un chemin différent crée un nouveau fichier. Enregistrer dans le même chemin écrase l’original.
Problèmes courants et solutions
java.io.FileNotFoundException
Vérifiez que le chemin vers le fichier .pptx est correct par rapport au répertoire de travail. Utilisez java.nio.file.Paths pour une construction de chemin robuste :
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 bibliothèque prend en charge .pptx (Office Open XML) uniquement. Les fichiers .ppt (PowerPoint binaire 97-2003) hérités ne sont pas pris en charge.
Les formes n’ont pas de méthode getTextFrame()
Certaines formes (Connectors, PictureFrames, GroupShapes) n’ont pas de cadre de texte. Vérifiez avec instanceof IAutoShape avant de caster et d’accéder au texte.
Foire aux questions
Le chargement préserve-t-il tout le contenu original ?
Oui. Les parties XML inconnues sont conservées mot pour mot lors de l’enregistrement en aller‑retour. La bibliothèque ne sérialise que les parties du modèle de document qu’elle comprend, et transmet telles quelles tout XML qu’elle ne reconnaît pas.
Puis-je charger un PPTX protégé par mot de passe ?
Les présentations protégées par mot de passe (cryptées) ne sont pas prises en charge dans cette édition.
Le chargement à partir d’un InputStream est‑il pris en charge ?
Oui. Le constructeur Presentation accepte 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());
}