Sådan indlæses præsentationer i .NET
Aspose.Slides FOSS for .NET lader dig åbne enhver .pptx fil, inspicere dens indhold, og enten gemme den tilbage til PPTX eller udtrække data fra den. Denne guide dækker åbning af en fil, iteration af slides, læsning af formtekst og round‑tripping af gemningen.
Trin-for-trin guide
Trin 1: Installer pakken
dotnet add package Aspose.Slides.FossTrin 2: Åbn en eksisterende præsentation
Videregiv filstien til new Presentation(). Brug en using-udsagn for at sikre oprydning.
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);Ukendte XML-dele i kildefilen bevares ordret: biblioteket fjerner aldrig indhold, som det endnu ikke forstår.
Trin 3: Inspicér dias
Iterer over alle slides og udskriv deres indeks:
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");
}Trin 4: Læs formtekst
Iterer over former og læs tekst fra former, der 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}");
}
}
}Trin 5: Læs dokumentegenskaber
Få adgang til kerndokumentegenskaber fra 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}");Trin 6: Rundtur‑gem
Efter at have inspiceret eller ændret præsentationen, gem den tilbage til PPTX:
prs.Save("output.pptx", SaveFormat.Pptx);Gemmer du til en anden sti, oprettes en ny fil. Gemmer du til den samme sti, overskrives den oprindelige.
Almindelige problemer og rettelser
FileNotFoundException
Kontroller, at stien til .pptx‑filen er korrekt i forhold til arbejdsbiblioteket. Brug Path.Combine til robust stiopbygning:
string path = Path.Combine(AppContext.BaseDirectory, "assets", "deck.pptx");
using var prs = new Presentation(path);Exception: File format is not supported
Biblioteket understøtter kun .pptx (Office Open XML). Ældre .ppt (binær PowerPoint 97-2003) filer understøttes ikke.
Shapes har ikke en TextFrame‑egenskab
Nogle former (Connector, PictureFrame) har ikke en TextFrame. Kast til IAutoShape og tjek for null, før du får adgang til teksten.
Ofte stillede spørgsmål
Bevarer indlæsning alt det oprindelige indhold?
Ja. Ukendte XML-dele bevares ordret på round-trip save. Biblioteket vil ikke fjerne noget XML-indhold, som det endnu ikke genkender.
Kan jeg indlæse en adgangskodebeskyttet PPTX?
Adgangskodebeskyttede (krypterede) præsentationer understøttes ikke i denne udgave.
Kan jeg udtrække indlejrede billeder?
Få adgang til billedsamlingen: prs.Images returnerer ImageCollection. Hvert billede har egenskaber til at læse de rå billeddata.
Er indlæsning fra en MemoryStream understøttet?
Ja. Presentation-konstruktøren accepterer en Stream:
using var stream = new MemoryStream(pptxBytes);
using var prs = new Presentation(stream);
Console.WriteLine($"Slides: {prs.Slides.Count}");