Jak načíst prezentace v .NET

Jak načíst prezentace v .NET

Aspose.Slides FOSS for .NET vám umožní otevřít libovolný soubor .pptx, prozkoumat jeho obsah a buď jej uložit zpět do PPTX, nebo z něj extrahovat data. Tento průvodce pokrývá otevření souboru, iteraci snímků, čtení textu tvaru 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 příkaz using 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é části XML ve zdrojovém souboru jsou zachovány doslovně: knihovna nikdy neodstraňuje obsah, který ještě nerozumí.


Krok 3: Prohlédněte snímky

Iterujte přes všechny snímky a vytiskně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: Načíst text tvaru

Iterujte přes tvary a načtěte text z tvarů, které mají 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: Načíst vlastnosti dokumentu

Přístup 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: Uložení v režimu round‑trip

Po prohlédnutí nebo úpravě prezentace ji uložte zpět do PPTX:

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

Ukládání na jinou cestu vytvoří nový soubor. Ukládání na stejnou cestu přepíše původní soubor.


Časté problémy a opravy

FileNotFoundException

Zkontrolujte, že cesta k souboru .pptx 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 pouze .pptx (Office Open XML). Starší soubory .ppt (binární PowerPoint 97‑2003) nejsou podporovány.

Tvary nemají vlastnost TextFrame

Některé tvary (Connector, PictureFrame) nemají TextFrame. Přetypujte na IAutoShape a zkontrolujte, zda není 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 round‑trip uložení zachovány doslovně. Knihovna neodstraní žádný XML obsah, který ještě 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 načítání z MemoryStream podporováno?

Ano. Konstruktor Presentation přijímá Stream:

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

Viz také

 Čeština