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.FossPasso 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}");