Com carregar presentacions a .NET

Com carregar presentacions a .NET

Aspose.Slides FOSS for .NET et permet obrir qualsevol fitxer .pptx, inspeccionar-ne el contingut i, o bé desar-lo de nou a PPTX o extreure’n 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 desar i tornar a carregar.

Guia pas a pas

Pas 1: Instal·la el paquet

dotnet add package Aspose.Slides.Foss

Pas 2: Obre una presentació existent

Passeu la ruta del fitxer a new Presentation(). Utilitzeu una instrucció using 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 al fitxer font 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: Llegir el text de la forma

Itera sobre les formes i llegeix 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: Llegir les propietats del document

Accediu a les propietats bàsiques 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: Desar en viatge d’anada i tornada

Després d’inspeccionar o modificar la presentació, deseu-la de nou a PPTX:

prs.Save("output.pptx", SaveFormat.Pptx);

Desar en una ruta diferent crea un fitxer nou. Desar en la mateixa ruta sobreescriu l’original.


Problemes comuns i solucions

FileNotFoundException

Comproveu que el camí cap al fitxer .pptx és correcte respecte al directori de treball. Utilitzeu Path.Combine per a una construcció de camins robusta:

string path = Path.Combine(AppContext.BaseDirectory, "assets", "deck.pptx");
using var prs = new Presentation(path);

Exception: File format is not supported

La biblioteca només admet .pptx (Office Open XML). No s’admeten fitxers antics .ppt (PowerPoint binari 97-2003).

Les formes no tenen una propietat TextFrame

Algunes formes (Connector, PictureFrame) no tenen un TextFrame. Converteix a IAutoShape i comprova que no sigui null 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 l’estalvi de viatge d’anada i tornada. La biblioteca no eliminarà cap contingut XML que encara no reconegui.

Puc carregar un PPTX protegit amb contrasenya?

Les presentacions protegides per contrasenya (encriptades) no són compatibles amb aquesta edició.

Puc extreure imatges incrustades?

Accediu a la col·lecció d’imatges: prs.Images retorna el ImageCollection. Cada imatge disposa de propietats per llegir les dades d’imatge en brut.

És compatible la càrrega des d’un MemoryStream?

Sí. El constructor Presentation accepta un Stream:

using var stream = new MemoryStream(pptxBytes);
using var prs = new Presentation(stream);
Console.WriteLine($"Slides: {prs.Slides.Count}");

Vegeu també

 Català