Comment enregistrer des présentations dans .NET
Aspose.Slides FOSS for .NET 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, l’enregistrement vers un flux, et les erreurs courantes liées à l’enregistrement.
Guide étape par étape
Étape 1 : Installer le package
dotnet add package Aspose.Slides.FossÉtape 2 : Ouvrir ou créer une présentation
Utilisez toujours un using déclaration. L’appel d’enregistrement doit se produire avant que l’objet ne soit libéré.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
// Create new
using var prs = new Presentation();
prs.Save("new.pptx", SaveFormat.Pptx);// Open existing
using var prs = new Presentation("input.pptx");
prs.Save("output.pptx", SaveFormat.Pptx);Étape 3 : Enregistrer après toutes les modifications
Placez le Save() appel après que toutes les modifications soient terminées, avant le using fin du scope.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
var slide = prs.Slides[0];
var shape = slide.Shapes.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 :
using var 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 : Enregistrer dans un flux
Le Presentation.Save la méthode accepte également un Stream:
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
using var stream = new MemoryStream();
prs.Save(stream, SaveFormat.Pptx);
byte[] pptxBytes = stream.ToArray();
Console.WriteLine($"Size: {pptxBytes.Length} bytes");Étape 6 : Vérifier la sortie
Après avoir enregistré dans un fichier, vérifiez qu’il existe :
var info = new FileInfo("output.pptx");
Console.WriteLine($"Saved: {info.Exists}, size: {info.Length} 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 pris en charge. Le paramètre de format est actuellement ignoré ; toutes les présentations sont enregistrées au format PPTX quel que soit le SaveFormat spécifié.
Problèmes courants et solutions
IOException: The process cannot access the file
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‑vous prs.Save() est appelé avant que l’objet ne soit libéré. Après Dispose() s’exécute, les appels ultérieurs échoueront ou produiront une sortie corrompue.
Format de sortie inattendu lors de l’enregistrement
Passer tout SaveFormat valeur autre que SaveFormat.Pptx ne lève pas d’exception — le paramètre de format est silencieusement ignoré et le fichier est toujours enregistré au format PPTX. Il n’existe pas NotSupportedException pour une valeur de format non reconnue.
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 :
using var prs = new Presentation("deck.pptx");
// modify ...
prs.Save("deck.pptx", SaveFormat.Pptx); // overwrites originalL’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.