Com carregar presentacions a .NET
Aspose.Slides FOSS for .NET lets you open any .pptx fitxer, inspeccioneu el seu contingut i deseu-lo de nou a PPTX o extraieu-ne dades. Aquesta guia cobreix l’obertura d’un fitxer, la iteració de les diapositives, la lectura del text de les formes i el procés de tornar a desar.
Guia pas a pas
Pas 1: Instal·la el paquet
dotnet add package Aspose.Slides.FossPas 2: Obre una presentació existent
Passeu la ruta del fitxer a new Presentation(). Utilitzeu un using sentència per garantir la neteja.
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 parts XML desconegudes del fitxer d’origen es conserven literalment: la biblioteca mai elimina contingut que encara no entén.
Pas 3: Inspecciona les diapositives
Itera sobre totes les diapositives i imprimeix el seu índex:
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");
}Pas 4: Llegeix el text de les formes
Itereu sobre les formes i llegiu el text de les formes que tenen 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}");
}
}
}Pas 5: Llegeix les propietats del document
Accediu a les propietats principals del document des de 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}");Pas 6: Desament d’anar i tornar
Després d’inspeccionar o modificar la presentació, desa-la de nou a PPTX:
prs.Save("output.pptx", SaveFormat.Pptx);Desar a un camí diferent crea un fitxer nou. Desar al mateix camí sobrescriu l’original.
Problemes comuns i solucions
FileNotFoundException
Comproveu que la ruta cap al .pptx fitxer és correcta respecte al directori de treball. Utilitzeu Path.Combine per a una construcció robusta de rutes:
string path = Path.Combine(AppContext.BaseDirectory, "assets", "deck.pptx");
using var prs = new Presentation(path);Exception: File format is not supported
La biblioteca admet .pptx (Office Open XML) només. Antic .ppt Els fitxers (binary PowerPoint 97-2003) no són compatibles.
Les formes no tenen una propietat TextFrame
Algunes formes (Connector, PictureFrame) no tenen un TextFrame. Converteix a IAutoShape i comprova si és nul abans d’accedir al text.
Preguntes freqüents
La càrrega conserva tot el contingut original?
Sí. Les parts XML desconegudes es conserven literalment en una desada de retorn. La biblioteca no eliminarà cap contingut XML que encara no reconegui.
Puc carregar un PPTX protegit per contrasenya?
Les presentacions protegides amb contrasenya (encriptades) no són compatibles en aquesta edició.
Puc extreure imatges incrustades?
Accedeix a la col·lecció d’imatges: prs.Images retorna el ImageCollection. Cada imatge té propietats per llegir les dades d’imatge en brut.
Es compatible la càrrega des d’un MemoryStream?
Sí. El Presentation constructor accepta un Stream:
using var stream = new MemoryStream(pptxBytes);
using var prs = new Presentation(stream);
Console.WriteLine($"Slides: {prs.Slides.Count}");