Comment charger des présentations en .NET
Aspose.Slides FOSS for .NET vous permet d’ouvrir n’importe quel fichier .pptx, d’inspecter son contenu, et soit de l’enregistrer à nouveau au format PPTX, soit d’en extraire 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‑tripping de l’enregistrement.
Guide étape par étape
Étape 1 : Installer le package
dotnet add package Aspose.Slides.FossÉtape 2 : Ouvrir une présentation existante
Passez le chemin du fichier à new Presentation(). Utilisez une instruction using pour garantir le nettoyage.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation("input.pptx");
Console.WriteLine($"Slide count: {prs.Slides.Count}");
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érer sur toutes les diapositives et afficher leur index :
using Aspose.Slides.Foss;
using var prs = new Presentation("deck.pptx");
for (int i = 0; i < prs.Slides.Count; i++)
{
var slide = prs.Slides[i];
int shapeCount = slide.Shapes.Count;
Console.WriteLine($"Slide {i}: {shapeCount} shapes");
}Étape 4 : Lire le texte de la forme
Itérer sur les formes et lire le texte des formes qui ont un TextFrame:
using Aspose.Slides.Foss;
using var prs = new Presentation("deck.pptx");
foreach (var slide in prs.Slides)
{
foreach (var shape in slide.Shapes)
{
if (shape is IAutoShape autoShape && autoShape.TextFrame != null)
{
string text = autoShape.TextFrame.Text;
if (!string.IsNullOrWhiteSpace(text))
Console.WriteLine($" Shape text: {text}");
}
}
}Étape 5 : Lire les propriétés du document
Accéder aux propriétés de base du document depuis prs.DocumentProperties :
using Aspose.Slides.Foss;
using var prs = new Presentation("deck.pptx");
var props = prs.DocumentProperties;
Console.WriteLine($"Title: {props.Title}");
Console.WriteLine($"Author: {props.Author}");
Console.WriteLine($"Subject: {props.Subject}");Étape 6 : Enregistrement en aller‑retour
Après avoir inspecté ou modifié la présentation, enregistrez‑la à nouveau au format PPTX :
prs.Save("output.pptx", SaveFormat.Pptx);Enregistrement dans un chemin différent crée un nouveau fichier. Enregistrement dans le même chemin écrase l’original.
Problèmes courants et solutions
FileNotFoundException
Vérifiez que le chemin vers le fichier .pptx est correct par rapport au répertoire de travail. Utilisez Path.Combine pour une construction de chemin robuste :
string path = Path.Combine(AppContext.BaseDirectory, "assets", "deck.pptx");
using var prs = new Presentation(path);Exception: File format is not supported
La bibliothèque prend en charge uniquement .pptx (Office Open XML). Les fichiers hérités .ppt (PowerPoint binaire 97-2003) ne sont pas pris en charge.
Les formes n’ont pas de propriété TextFrame
Certaines formes (Connector, PictureFrame) n’ont pas de TextFrame. Effectuez un cast vers IAutoShape et vérifiez la nullité avant d’accéder au texte.
Questions fréquemment posées
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 supprimera aucun contenu XML qu’elle ne reconnaît pas encore.
Puis-je charger un PPTX protégé par mot de passe ?
Les présentations protégées par mot de passe (cryptées) ne sont pas prises en charge dans cette édition.
Puis-je extraire les images intégrées ?
Accédez à la collection d’images : prs.Images renvoie le ImageCollection. Chaque image possède des propriétés pour lire les données d’image brutes.
Le chargement à partir d’un MemoryStream est‑il pris en charge ?
Oui. Le constructeur Presentation accepte un Stream:
using var stream = new MemoryStream(pptxBytes);
using var prs = new Presentation(stream);
Console.WriteLine($"Slides: {prs.Slides.Count}");