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