Ukládání a exportování dokumentů

Ukládání a exportování dokumentů

Ukládání a export dokumentů

Document.Save zapisuje dokument do souboru nebo proudu v cílovém formátu. Formát je buď odvozen z přípony souboru, zadán explicitně jako hodnota SaveFormat, nebo řízen podtřídou SaveOptions — OoxmlSaveOptions, MarkdownSaveOptions nebo TxtSaveOptions — pro formátově specifické řízení. Tento průvodce pokrývá přetížení Save, výčtový typ SaveFormat, možnosti ukládání OOXML, export do Markdownu a prostého textu a detekci formátu před konverzí.


Ukládání pomocí Document.Save

Nejednodušší volání, Document.Save(fileName), odvozuje cílový formát z přípony souboru. Save(fileName, saveFormat) udělá formát explicitní bez ohledu na příponu a Save(fileName, saveOptions) (nebo odpovídající přetížení Stream) přijímá podtřídu SaveOptions pro nastavení specifická pro formát. SaveOptions.CreateSaveOptions(saveFormat) je statická továrna, která vrací správnou podtřídu možností pro daný SaveFormat s již nastavenými výchozími hodnotami.


Výběr formátu pomocí SaveFormat

Výčtový typ SaveFormat uvádí všechny identifikátory formátů pro ukládání, které knihovna rozpoznává. Document.Save zapisuje plně jak do, tak z hlavních formátů dokumentů této edice — DOCX, DOCM, DOTX, DOTM a Flat OPC (včetně jeho variant s makry a šablon) — stejně jako Markdown a prostý text. FileFormatUtil.SaveFormatToExtension(saveFormat) a ExtensionToSaveFormat(extension) převádějí mezi výčtem a řetězcem přípony souboru.

Některé hodnoty SaveFormat existují ve výčtu pro úplnost API, ale odpovídají formátům, pro které tato zjednodušená, open-source edice neimplementuje funkční čtečku ani zapisovač — pokus o uložení do jednoho z nich vytvoří výstup, který není ekvivalentní zdrojovému dokumentu. Držte se formátů uvedených výše pro spolehlivý obousměrný převod.


Možnosti OOXML: DOCX, DOCM, DOTX, DOTM a Flat OPC

OoxmlSaveOptions nastavuje ukládání do libovolného z formátů Open XML. Jeho vlastnost SaveFormat vybírá, kterou konkrétní variantu zapsat; Password nastaví otevřené heslo na uložený soubor (nezávisle na omezeních úprav Document.Protect); Compliance vybírá úroveň přísnosti OOXML; a CompressionLevel / Zip64Mode řídí podkladové balíčkování ZIP. Vytvořte jej pomocí new OoxmlSaveOptions(saveFormat) nebo přes SaveOptions.CreateSaveOptions(saveFormat).


Export do Markdownu

MarkdownSaveOptions řídí export do Markdownu: ListExportMode a LinkExportMode určují, jak jsou vykresleny seznamy a hypertextové odkazy, ImagesFolder / ImagesFolderAlias určují, kam jsou extrahované obrázky zapsány a jak jsou odkazovány, ExportImagesAsBase64 je embeduje inline místo toho, a TableContentAlignment ovlivňuje generovaný značkový kód tabulek. Předávejte instanci MarkdownSaveOptions do Document.Save(fileName, saveOptions) s názvem souboru .md, nebo nastavte její SaveFormat explicitně.


Export do prostého textu

TxtSaveOptions (prostřednictvím své základní TxtSaveOptionsBase, sdílené s MarkdownSaveOptions) řídí export do prostého textu: Encoding nastavuje kódování znaků, ParagraphBreak nastavuje řetězec konce řádku, MaxCharactersPerLine zalamuje dlouhé řádky, SimplifyListLabels normalizuje odrážky/čísla seznamů na prosté znaky, a PreserveTableLayout se snaží udržet sloupce tabulek zarovnané pomocí mezer.


Detekce formátu před konverzí

Před konverzí souboru, jehož formát neznáte, FileFormatUtil.DetectFileFormat(fileName) vrací FileFormatInfo s detekovaným LoadFormat. Kombinujte to s FileFormatUtil.LoadFormatToSaveFormat(loadFormat), abyste rozhodli, zda je možné provést round-trip přes podporované formáty této edice, než se pokusíte o Document.Save.


Tipy a osvědčené postupy

  • Použijte Save(fileName, saveOptions) místo prostého přetížení Save(fileName, saveFormat), kdykoli potřebujete řídit chování specifické pro formát, například vykreslování seznamů v Markdownu nebo kompresi OOXML.
  • Nastavte OoxmlSaveOptions.Password pro soubor chráněný otevřeným heslem; to je odlišné od Document.Protect, který omezuje úpravy, ale soubor nešifruje.
  • Zvolte MarkdownSaveOptions.ExportImagesAsBase64 pro jediný samostatný soubor Markdown, nebo ImagesFolder, pokud chcete složku s extrahovanými obrázkovými soubory vedle Markdownu.
  • Zavolejte SaveOptions.CreateSaveOptions(saveFormat) místo ručního výběru konkrétní třídy možností, když je cílový formát určen za běhu.
  • Ověřte cílový formát pomocí FileFormatUtil před konverzí místo spoléhaní se jen na pouhou příponu souboru, která může být nesprávná nebo zavádějící.

Časté problémy

ProblémPříčinaOprava
Save(fileName) vybere nesprávný formátPřípona souboru neodpovídá zamýšlenému formátuPoužijte Save(fileName, saveFormat) nebo Save(fileName, saveOptions) pro explicitní určení formátu
Uložený soubor OOXML se neotevře pomocí heslaOoxmlSaveOptions.Password nebyl nastaven před uloženímVytvořte OoxmlSaveOptions, nastavte Password a předáte jej Save
Export do Markdownu nečekaně rozmisťuje soubory obrázkůVýchozí chování MarkdownSaveOptions extrahuje obrázky do souborůNastavte ExportImagesAsBase64 = true pro jeden samostatný soubor, nebo nastavte ImagesFolder, abyste řídili, kam se obrázky ukládají
Export do prostého textu ztrácí zarovnání sloupců tabulkyTxtSaveOptions.PreserveTableLayout zůstává ve výchozím nastaveníNastavte PreserveTableLayout = true před uložením

FAQ

Jak uložit dokument do konkrétního formátu bez ohledu na jeho příponu souboru?

Zavolejte Save(fileName, saveFormat) s explicitní hodnotou SaveFormat nebo Save(fileName, saveOptions) s odpovídající podtřídou SaveOptions.

Jaké formáty tato edice čte i zapisuje oběma směry?

DOCX, DOCM, DOTX, DOTM, Flat OPC (plus jeho varianty s makry a šablonami), Markdown a prostý text.

Jak chránit uložený soubor heslem?

Nastavte Password na instanci OoxmlSaveOptions a předjte ji do Document.Save(fileName, saveOptions).

Jak ovládat konce řádků v exportovaném textovém souboru?

Nastavte ParagraphBreak na instanci TxtSaveOptions před uložením.

Jak zjistím, v jakém formátu je soubor, než ho převedu?

Zavolejte FileFormatUtil.DetectFileFormat(fileName) a přečtěte vrácený FileFormatInfo.LoadFormat.


API Reference Shrnutí

Třída/MetodaPopis:
Document.SaveZapisuje dokument do souboru, proudu nebo výstupního cíle ve vybraném formátu.
SaveFormatEnum identifikující cílový formát pro operaci uložení.
SaveOptionsAbstraktní základní třída pro konfiguraci ukládání specifickou pro formát; CreateSaveOptions(saveFormat) vrací odpovídající podtřídu.
OoxmlSaveOptionsMožnosti pro DOCX, DOCM, DOTX, DOTM a Flat OPC — heslo, soulad, komprese.
MarkdownSaveOptionsMožnosti exportu do Markdownu — vykreslování seznamů/odkazů, zpracování obrázků.
TxtSaveOptions / TxtSaveOptionsBaseMožnosti exportu prostého textu — kódování, konce řádků, rozvržení tabulky.
FileFormatUtil.DetectFileFormatDetekuje formát souboru před jeho načtením nebo konverzí.
FileFormatUtil.SaveFormatToExtension / ExtensionToSaveFormatPřevádí mezi hodnotou SaveFormat a příponou souboru.

Viz také:

 Čeština