Come caricare presentazioni in .NET
Aspose.Slides FOSS per .NET ti consente di aprire qualsiasi file .pptx, ispezionarne il contenuto e salvarlo nuovamente in PPTX o estrarre 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 una dichiarazione using 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 conservate 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 della forma
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);Il salvataggio in un percorso diverso crea un nuovo file. Il salvataggio nello stesso percorso sovrascrive l’originale.
Problemi comuni e soluzioni
FileNotFoundException
Verifica che il percorso al file .pptx 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 solo .pptx (Office Open XML). I file legacy .ppt (PowerPoint binario 97-2003) non sono supportati.
Le forme non hanno una proprietà TextFrame
Alcune forme (Connector, PictureFrame) non hanno un TextFrame. Esegui il cast 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 a ciclo completo. 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 costruttore Presentation accetta un Stream:
using var stream = new MemoryStream(pptxBytes);
using var prs = new Presentation(stream);
Console.WriteLine($"Slides: {prs.Slides.Count}");