Enregistrer des présentations en .NET
Vue d’ensemble
Open Presentations in C# décrit comment utiliser la classe Presentation pour ouvrir une présentation. Cet article explique comment créer et enregistrer des présentations. La classe Presentation contient le contenu d’une présentation. Que vous créiez une présentation à partir de zéro ou que vous modifiiez une présentation existante, vous voudrez l’enregistrer une fois terminé. Avec Aspose.Slides pour .NET, vous pouvez enregistrer dans un fichier ou un flux. Cet article explique les différentes manières d’enregistrer une présentation.
Enregistrer des présentations dans des fichiers
Enregistrez une présentation dans un fichier en appelant la méthode Save de la classe Presentation. Passez le nom du fichier et le format d’enregistrement à la méthode. L’exemple suivant montre comment enregistrer une présentation avec Aspose.Slides.
// Instanciez la classe Presentation qui représente un fichier de présentation.
using (Presentation presentation = new Presentation())
{
// Effectuez du travail ici...
// Enregistrez la présentation dans un fichier.
presentation.Save("Output.pptx", SaveFormat.Pptx);
}
Enregistrer des présentations dans des flux
Vous pouvez enregistrer une présentation dans un flux en transmettant un flux de sortie à la méthode Save de la classe Presentation. Une présentation peut être écrite dans de nombreux types de flux. Dans l’exemple ci‑dessous, nous créons une nouvelle présentation et l’enregistrons dans un flux de fichier.
// Instanciez la classe Presentation qui représente un fichier de présentation.
using (Presentation presentation = new Presentation())
{
using (FileStream fileStream = new FileStream("Output.pptx", FileMode.Create))
{
// Enregistrez la présentation dans le flux.
presentation.Save(fileStream, SaveFormat.Pptx);
}
}
Enregistrer des présentations avec un type de vue prédéfini
Aspose.Slides vous permet de définir la vue initiale que PowerPoint utilise lorsque la présentation générée s’ouvre via la classe ViewProperties. Définissez la propriété LastView à une valeur de l’énumération ViewType.
using (Presentation presentation = new Presentation())
{
presentation.ViewProperties.LastView = ViewType.SlideMasterView;
presentation.Save("SlideMasterView.pptx", SaveFormat.Pptx);
}
Enregistrer des présentations au format Strict Office Open XML
Aspose.Slides vous permet d’enregistrer une présentation au format Strict Office Open XML. Utilisez la classe PptxOptions et définissez sa propriété de conformité lors de l’enregistrement. Si vous définissez Conformance.Iso29500_2008_Strict, le fichier de sortie est enregistré au format Strict Office Open XML.
L’exemple ci‑dessous crée une présentation et l’enregistre au format Strict Office Open XML.
PptxOptions options = new PptxOptions()
{
Conformance = Conformance.Iso29500_2008_Strict
};
// Instanciez la classe Presentation qui représente un fichier de présentation.
using (Presentation presentation = new Presentation())
{
// Enregistrez la présentation au format Strict Office Open XML.
presentation.Save("StrictOfficeOpenXml.pptx", SaveFormat.Pptx, options);
}
Enregistrer des présentations au format Office Open XML en mode Zip64
Un fichier Office Open XML est une archive ZIP qui impose des limites de 4 Go (2^32 octets) sur la taille non compressée de chaque fichier, la taille compressée de chaque fichier et la taille totale de l’archive, ainsi qu’une limite de 65 535 (2^16‑1) fichiers. Les extensions du format ZIP64 élèvent ces limites à 2^64.
La propriété IPptxOptions.Zip64Mode vous permet de choisir quand utiliser les extensions du format ZIP64 lors de l’enregistrement d’un fichier Office Open XML.
Cette propriété propose les modes suivants :
IfNecessaryutilise les extensions ZIP64 uniquement si la présentation dépasse les limitations ci‑dessus. C’est le mode par défaut.Nevern’utilise jamais les extensions ZIP64.Alwaysutilise toujours les extensions ZIP64.
Le code suivant montre comment enregistrer une présentation au format PPTX avec les extensions ZIP64 activées :
using (Presentation presentation = new Presentation("Sample.pptx"))
{
presentation.Save("OutputZip64.pptx", SaveFormat.Pptx, new PptxOptions()
{
Zip64Mode = Zip64Mode.Always
});
}
NOTE
Lorsque vous enregistrez avecZip64Mode.Never, une PptxException est levée si la présentation ne peut pas être enregistrée au format ZIP32.
Enregistrer des présentations sans rafraîchir la miniature
La propriété PptxOptions.RefreshThumbnail contrôle la génération de la miniature lors de l’enregistrement d’une présentation au format PPTX :
- Si elle est définie sur
true, la miniature est rafraîchie pendant l’enregistrement. C’est la valeur par défaut. - Si elle est définie sur
false, la miniature actuelle est conservée. Si la présentation n’a pas de miniature, aucune n’est générée.
Dans le code ci‑dessous, la présentation est enregistrée au format PPTX sans rafraîchir sa miniature.
using (Presentation presentation = new Presentation("Sample.pptx"))
{
presentation.Save("Output.pptx", SaveFormat.Pptx, new PptxOptions()
{
RefreshThumbnail = false
});
}
Info
Cette option permet de réduire le temps nécessaire pour enregistrer une présentation au format PPTX.Enregistrer les mises à jour de progression en pourcentage
L’interface IProgressCallback est utilisée via la propriété ProgressCallback exposée par l’interface ISaveOptions et la classe abstraite SaveOptions. Assignez une implémentation de IProgressCallback à ProgressCallback pour recevoir les mises à jour de progression d’enregistrement sous forme de pourcentage.
Les extraits de code suivants montrent comment utiliser IProgressCallback.
ISaveOptions saveOptions = new PdfOptions();
saveOptions.ProgressCallback = new ExportProgressHandler();
using (Presentation presentation = new Presentation("Sample.pptx"))
{
presentation.Save("Output.pdf", SaveFormat.Pdf, saveOptions);
}
class ExportProgressHandler : IProgressCallback
{
public void Reporting(double progressValue)
{
// Utilisez la valeur du pourcentage de progression ici.
int progress = Convert.ToInt32(progressValue);
Console.WriteLine(progress + "% of the file has been converted.");
}
}
Info
Aspose a développé une application gratuite de fractionnement PowerPoint (free PowerPoint Splitter app) en utilisant sa propre API. L’application vous permet de diviser une présentation en plusieurs fichiers en enregistrant les diapositives sélectionnées comme nouveaux fichiers PPTX ou PPT.FAQ
La sauvegarde rapide (« fast save » ou sauvegarde incrémentielle) est‑elle prise en charge afin que seules les modifications soient écrites ?
Non. La sauvegarde crée le fichier cible complet à chaque fois ; la sauvegarde rapide incrémentielle n’est pas prise en charge.
Est‑il sûr d’enregistrer la même instance Presentation depuis plusieurs threads ?
Non. Une instance Presentation n’est pas thread‑safe ; enregistrez‑la depuis un seul thread.
Que se passe‑t‑il pour les hyperliens et les fichiers liés externes lors de l’enregistrement ?
Les Hyperlinks sont conservés. Les fichiers liés externes (par ex. vidéos via chemins relatifs) ne sont pas copiés automatiquement — assurez‑vous que les chemins référencés restent accessibles.
Puis‑je définir/enregistrer les métadonnées du document (Auteur, Titre, Société, Date) ?
Oui. Les propriétés de document standards sont prises en charge et seront écrites dans le fichier lors de l’enregistrement.