Hur man laddar presentationer i .NET
Aspose.Slides FOSS for .NET låter dig öppna vilken .pptx‑fil som helst, inspektera dess innehåll och antingen spara den tillbaka till PPTX eller extrahera data från den. Denna guide täcker hur du öppnar en fil, itererar genom bilder, läser formtext och round‑tripping‑sparandet.
Steg-för-steg-guide
Steg 1: Installera paketet
dotnet add package Aspose.Slides.FossSteg 2: Öppna en befintlig presentation
Skicka filvägen till new Presentation(). Använd ett using-uttalande för att säkerställa rensning.
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);Okända XML-delar i källfilen bevaras ordagrant: biblioteket tar aldrig bort innehåll som det ännu inte förstår.
Steg 3: Inspektera bilder
Iterera över alla bilder och skriv ut deras index:
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");
}Steg 4: Läs formtext
Iterera över former och läs text från former som har en 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}");
}
}
}Steg 5: Läs dokumentegenskaper
Åtkomst till grundläggande dokumentegenskaper från 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}");Steg 6: Spara med rundresa
Efter att ha granskat eller ändrat presentationen, spara den tillbaka till PPTX:
prs.Save("output.pptx", SaveFormat.Pptx);Att spara till en annan sökväg skapar en ny fil. Att spara till samma sökväg skriver över den ursprungliga.
Vanliga problem och lösningar
FileNotFoundException
Kontrollera att sökvägen till .pptx‑filen är korrekt i förhållande till arbetskatalogen. Använd Path.Combine för robust sökvägskonstruktion:
string path = Path.Combine(AppContext.BaseDirectory, "assets", "deck.pptx");
using var prs = new Presentation(path);Exception: File format is not supported
Biblioteket stöder endast .pptx (Office Open XML). Äldre .ppt (binära PowerPoint 97-2003) filer stöds inte.
Former har ingen TextFrame‑egenskap
Vissa former (Connector, PictureFrame) har ingen TextFrame. Kasta till IAutoShape och kontrollera null innan du får åtkomst till texten.
Vanliga frågor
Bevarar laddning all originalt innehåll?
Ja. Okända XML‑delar bevaras ordagrant vid rundresurslagring. Biblioteket tar inte bort något XML‑innehåll som det ännu inte känner igen.
Kan jag ladda en lösenordsskyddad PPTX?
Lösenordsskyddade (krypterade) presentationer stöds inte i den här utgåvan.
Kan jag extrahera inbäddade bilder?
Få åtkomst till bildsamlingen: prs.Images returnerar ImageCollection. Varje bild har egenskaper för att läsa den råa bilddata.
Stöds inläsning från en MemoryStream?
Ja. Presentation-konstruktorn accepterar en Stream:
using var stream = new MemoryStream(pptxBytes);
using var prs = new Presentation(stream);
Console.WriteLine($"Slides: {prs.Slides.Count}");