Comment charger des présentations en Java

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

Voir aussi

 Français