Sådan indlæses præsentationer i .NET
Aspose.Slides FOSS for .NET lets you open any .pptx fil, inspicér dens indhold, og gem den enten tilbage som PPTX eller udtræk data fra den. Denne vejledning dækker åbning af en fil, iteration over 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
Send filstien til new Presentation(). Brug en using statement 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, det endnu ikke forstår.
Trin 3: Inspicer slides
Gennemløb alle dias 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 kerne‑dokumentegenskaber 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: Round‑Trip‑gemning
Efter at have inspiceret eller modificeret præsentationen, gem den tilbage til PPTX:
prs.Save("output.pptx", SaveFormat.Pptx);Gemning til en anden sti opretter en ny fil. Gemning til den samme sti overskriver den oprindelige.
Almindelige problemer og løsninger
FileNotFoundException
Kontroller at stien til .pptx filen er korrekt i forhold til arbejdsmappen. Brug Path.Combine til robust sti‑konstruktion:
string path = Path.Combine(AppContext.BaseDirectory, "assets", "deck.pptx");
using var prs = new Presentation(path);Exception: File format is not supported
Biblioteket understøtter .pptx (Office Open XML) kun. Ældre .ppt (binære PowerPoint 97-2003) filer understøttes ikke.
Former har ikke en TextFrame‑egenskab
Nogle former (Connector, PictureFrame) har ikke en TextFrame. Cast til IAutoShape og tjek for null før du får adgang til teksten.
Ofte stillede spørgsmål
Bevarer indlæsning alt det originale indhold?
Ja. Ukendte XML‑dele bevares ordret ved round‑trip‑gemning. 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 den ImageCollection. Hvert billede har egenskaber til at læse de rå billeddata.
Understøttes indlæsning fra en MemoryStream?
Ja. Det Presentation konstruktøren accepterer en Stream:
using var stream = new MemoryStream(pptxBytes);
using var prs = new Presentation(stream);
Console.WriteLine($"Slides: {prs.Slides.Count}");