Comment enregistrer des présentations en Java
Aspose.Slides FOSS for Java enregistre les présentations exclusivement au format .pptx en utilisant prs.save(path, SaveFormat.PPTX). Ce guide couvre le modèle d’enregistrement correct, l’enregistrement vers un chemin différent et les erreurs courantes liées à 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 ou créer une présentation
Utilisez toujours try-with-resources. L’appel de sauvegarde doit se produire à l’intérieur du bloc try.
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;
// Create new
try (Presentation prs = new Presentation()) {
prs.save("new.pptx", SaveFormat.PPTX);
}
// Open existing
try (Presentation prs = new Presentation("input.pptx")) {
prs.save("output.pptx", SaveFormat.PPTX);
}Étape 3 : Enregistrer après toutes les modifications
Placez l’appel save() comme la dernière instruction à l’intérieur du bloc try, après que toutes les modifications soient terminées.
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;
try (Presentation prs = new Presentation()) {
ISlide slide = prs.getSlides().get(0);
IAutoShape shape = slide.getShapes().addAutoShape(
ShapeType.RECTANGLE, 50, 50, 300, 100
);
shape.addTextFrame("Hello, World!");
prs.save("output.pptx", SaveFormat.PPTX);
}Étape 4 : Enregistrer dans un autre chemin
Passez un chemin de sortie différent pour créer un nouveau fichier sans modifier l’original :
try (Presentation prs = new Presentation("template.pptx")) {
// modify ...
prs.save("customized.pptx", SaveFormat.PPTX);
}Le fichier template.pptx n’est pas modifié ; customized.pptx est créé (ou écrasé s’il existe déjà).
Étape 5 : Vérifier la sortie
Après la sortie du bloc try, le fichier est complet et fermé. Vérifiez qu’il existe :
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
Path output = Paths.get("output.pptx");
System.out.println("Saved: " + Files.exists(output)
+ ", size: " + Files.size(output) + " bytes");Format d’enregistrement pris en charge
| Format | Valeur d’énumération | Pris en charge |
|---|---|---|
| PPTX (Office Open XML) | SaveFormat.PPTX | Oui |
| N/A | Non | |
| HTML | N/A | Non |
| SVG | N/A | Non |
| PNG / JPEG | N/A | Non |
| ODP (OpenDocument) | N/A | Non |
Seul le PPTX est entièrement pris en charge. Passer toute autre valeur SaveFormat à prs.save(path, format) enregistre silencieusement en PPTX — aucune exception n’est levée et l’argument de format est ignoré. UnsupportedOperationException n’est levée que par prs.save(ISaveOptions options), pas par les surcharges basées sur le format.
Problèmes courants et solutions
java.io.IOException: Permission denied
Le fichier de sortie est ouvert dans une autre application (par exemple, PowerPoint a le fichier ouvert). Fermez le fichier dans les autres applications avant d’enregistrer.
Le fichier est créé mais apparaît vide ou corrompu
Assurez-vous que prs.save() est appelé à l’intérieur du bloc try, et non après. Après la sortie du bloc try‑with‑resources, l’objet Presentation est libéré et les appels ultérieurs échoueront.
UnsupportedOperationException lors de l’enregistrement
Cela se produit lors de l’utilisation de prs.save(ISaveOptions options) — la surcharge basée sur ISaveOptions n’est pas implémentée. Remarque : passer un SaveFormat non-PPTX à prs.save(path, format) ne pas lance cette exception ; il l’enregistre silencieusement en PPTX.
Questions fréquemment posées
Puis-je enregistrer dans le même fichier que j’ai ouvert ?
Oui. Enregistrer sur le même chemin écrase le fichier original :
try (Presentation prs = new Presentation("deck.pptx")) {
// modify ...
prs.save("deck.pptx", SaveFormat.PPTX); // overwrites original
}Puis-je enregistrer dans un OutputStream ?
Oui. La méthode save() accepte un OutputStream:
import java.io.FileOutputStream;
try (Presentation prs = new Presentation();
FileOutputStream fos = new FileOutputStream("output.pptx")) {
prs.save(fos, SaveFormat.PPTX);
}L’enregistrement préserve-t-il le contenu que je n’ai pas modifié ?
Oui. Les parties XML inconnues du fichier original sont conservées mot pour mot. 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.