Sådan indlæses præsentationer i .NET

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.Foss

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

Se også

 Dansk