Jak načíst prezentace v .NET

Jak načíst prezentace v .NET

Aspose.Slides FOSS for .NET lets you open any .pptx soubor, prohlédněte jeho obsah a buď jej uložte zpět do PPTX, nebo z něj extrahujte data. Tento průvodce popisuje otevření souboru, iteraci snímků, čtení textu tvarů a zpětné uložení.

Průvodce krok za krokem

Krok 1: Nainstalujte balíček

dotnet add package Aspose.Slides.Foss

Krok 2: Otevřít existující prezentaci

Předávejte cestu k souboru do new Presentation(). Použijte a using příkaz k zajištění úklidu.

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);

Neznámé XML části ve zdrojovém souboru jsou zachovány doslovně: knihovna nikdy neodstraňuje obsah, který ještě nezná.


Krok 3: Prozkoumat snímky

Procházejte všechny snímky a vypište jejich 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");
}

Krok 4: Číst text tvaru

Iterujte přes tvary a čtěte text z tvarů, které mají a 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}");
        }
    }
}

Krok 5: Číst vlastnosti dokumentu

Přistupujte k základním vlastnostem dokumentu z 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}");

Krok 6: Zpětné uložení (round‑trip)

Po prozkoumání nebo úpravě prezentace ji uložte zpět do PPTX:

prs.Save("output.pptx", SaveFormat.Pptx);

Uložení na jinou cestu vytvoří nový soubor. Uložení na stejnou cestu přepíše originál.


Časté problémy a opravy

FileNotFoundException

Zkontrolujte, že cesta k .pptx souboru je správná vzhledem k pracovnímu adresáři. Použijte Path.Combine pro robustní konstrukci cesty:

string path = Path.Combine(AppContext.BaseDirectory, "assets", "deck.pptx");
using var prs = new Presentation(path);

Exception: File format is not supported

Knihovna podporuje .pptx (Office Open XML) pouze. Starší .ppt (binární PowerPoint 97-2003) soubory nejsou podporovány.

Tvary nemají vlastnost TextFrame

Některé tvary (Connector, PictureFrame) nemají a TextFrame. Přetypujte na IAutoShape a zkontrolujte null před přístupem k textu.


Často kladené otázky

Zachovává načítání veškerý původní obsah?

Ano. Neznámé části XML jsou při uložení round‑trip zachovány beze změny. Knihovna neodstraní žádný XML obsah, který zatím nepozná.

Mohu načíst PPTX chráněný heslem?

Prezentace chráněné heslem (šifrované) nejsou v této edici podporovány.

Mohu extrahovat vložené obrázky?

Přístup ke kolekci obrázků: prs.Images vrací ImageCollection. Každý obrázek má vlastnosti pro čtení surových dat obrázku.

Je podporováno načítání z MemoryStream?

Ano. Ten Presentation konstruktor přijímá a Stream:

using var stream = new MemoryStream(pptxBytes);
using var prs = new Presentation(stream);
Console.WriteLine($"Slides: {prs.Slides.Count}");

Viz také

 Čeština