Come caricare presentazioni in .NET

Come caricare presentazioni in .NET

Aspose.Slides FOSS for .NET lets you open any .pptx file, ispeziona il suo contenuto e oppure salvalo nuovamente in PPTX o estrai i dati da esso. Questa guida copre l’apertura di un file, l’iterazione delle diapositive, la lettura del testo delle forme e il salvataggio round‑trip.

Guida passo-passo

Passo 1: Installa il pacchetto

dotnet add package Aspose.Slides.Foss

Passo 2: Apri una presentazione esistente

Passa il percorso del file a new Presentation(). Usa un using istruzione per garantire la pulizia.

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);

Le parti XML sconosciute nel file di origine vengono preservate alla lettera: la libreria non rimuove mai contenuti che non comprende ancora.


Passo 3: Ispeziona le diapositive

Itera su tutte le diapositive e stampa il loro 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");
}

Passo 4: Leggi il testo delle forme

Itera sulle forme e leggi il testo dalle forme che hanno 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}");
        }
    }
}

Passo 5: Leggi le proprietà del documento

Accedi alle proprietà principali del documento da 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}");

Passo 6: Salvataggio round‑trip

Dopo aver ispezionato o modificato la presentazione, salvala nuovamente in PPTX:

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

Salvare in un percorso diverso crea un nuovo file. Salvare nello stesso percorso sovrascrive l’originale.


Problemi comuni e soluzioni

FileNotFoundException

Verifica che il percorso al .pptx file sia corretto rispetto alla directory di lavoro. Usa Path.Combine per una costruzione robusta del percorso:

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

Exception: File format is not supported

La libreria supporta .pptx (Office Open XML) solo. I file legacy .ppt (binary PowerPoint 97-2003) non sono supportati.

Le forme non hanno una proprietà TextFrame

Alcune forme (Connector, PictureFrame) non hanno un TextFrame. Converti a IAutoShape e verifica che non sia null prima di accedere al testo.


Domande frequenti

Il caricamento preserva tutto il contenuto originale?

Sì. Le parti XML sconosciute vengono preservate alla lettera durante il salvataggio round‑trip. La libreria non rimuoverà alcun contenuto XML che non riconosce ancora.

Posso caricare un PPTX protetto da password?

Le presentazioni protette da password (cifrati) non sono supportate in questa edizione.

Posso estrarre le immagini incorporate?

Accedi alla raccolta di immagini: prs.Images restituisce il ImageCollection. Ogni immagine ha proprietà per leggere i dati grezzi dell’immagine.

Il caricamento da un MemoryStream è supportato?

Sì. Il Presentation il costruttore accetta un Stream:

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

Vedi anche

 Italiano