Comment charger des présentations dans .NET
Aspose.Slides FOSS for .NET lets you open any .pptx fichier, inspectez son contenu, et soit le réenregistrez au format PPTX, soit extrayez les données. Ce guide couvre l’ouverture d’un fichier, l’itération des diapositives, la lecture du texte des formes et la sauvegarde en aller-retour.
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 un using instruction 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érez sur toutes les diapositives et affichez leur indice :
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 des formes
Itérez sur les formes et lisez le texte des formes qui possèdent 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édez 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 : Sauvegarde en aller-retour
Après avoir inspecté ou modifié la présentation, sauvegardez-la à nouveau au format PPTX :
prs.Save("output.pptx", SaveFormat.Pptx);Enregistrer vers un chemin différent crée un nouveau fichier. Enregistrer vers le même chemin écrase l’original.
Problèmes courants et solutions
FileNotFoundException
Vérifiez que le chemin vers le .pptx fichier 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 .pptx (Office Open XML) uniquement. Héritage .ppt Les fichiers (binary PowerPoint 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. Cast vers IAutoShape et vérifier la nullité avant d’accéder au texte.
Foire aux questions
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 (chiffré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 brutes de l’image.
Le chargement depuis un MemoryStream est-il pris en charge ?
Oui. Le Presentation constructeur accepte un Stream:
using var stream = new MemoryStream(pptxBytes);
using var prs = new Presentation(stream);
Console.WriteLine($"Slides: {prs.Slides.Count}");