Comment charger des présentations dans Java

Comment charger des présentations dans Java

Aspose.Slides FOSS for Java lets you open any .pptx fichier, inspectez son contenu, et soit le réenregistrez au format PPTX, soit extrayez 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‑trip 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 Presentation constructeur. 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érez sur toutes les diapositives et affichez 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 des formes

Itérez sur les formes et lisez le texte des formes qui possèdent 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édez aux propriétés de document de base 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 : Sauvegarde 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 vers un chemin différent crée un nouveau fichier. Enregistrer vers le même chemin écrase l’original.


Problèmes courants et solutions

java.io.FileNotFoundException

Vérifiez que le chemin vers le .pptx fichier 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. Legacy .ppt (binary PowerPoint 97-2003) les fichiers 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 faire un cast 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 les 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 (chiffrées) ne sont pas prises en charge dans cette édition.

Le chargement depuis un InputStream est-il pris en charge ?

Oui. Le Presentation constructeur 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