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