Comment enregistrer des présentations dans Java
Aspose.Slides FOSS for Java saves presentations exclusively to .pptx format 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 d’enregistrement doit se faire à 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 le save() appel en tant que 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 vers un chemin différent
Fournissez 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 template.pptx fichier 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 tout autre SaveFormat valeur à 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 ex., 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 prs.save() est appelé à l’intérieur du bloc try, pas après. Après la sortie du bloc try-with-resources, le Presentation objet 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) — le ISaveOptionsla surcharge basée sur - n’est pas implémentée. Remarque : passer un non-PPTX SaveFormat à prs.save(path, format) fait pas lancer cette exception; il enregistre silencieusement en PPTX.
Foire aux questions
Puis‑je enregistrer dans le même fichier que celui 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 vers un OutputStream ?
Oui. Le save() la méthode 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.