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.Passwordpro soubor chráněný otevřeným heslem; to je odlišné odDocument.Protect, který omezuje úpravy, ale soubor nešifruje. - Zvolte
MarkdownSaveOptions.ExportImagesAsBase64pro jediný samostatný soubor Markdown, neboImagesFolder, 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í
FileFormatUtilpř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ém | Příčina | Oprava |
|---|---|---|
Save(fileName) vybere nesprávný formát | Přípona souboru neodpovídá zamýšlenému formátu | Použijte Save(fileName, saveFormat) nebo Save(fileName, saveOptions) pro explicitní určení formátu |
| Uložený soubor OOXML se neotevře pomocí hesla | OoxmlSaveOptions.Password nebyl nastaven před uložením | Vytvoř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ů tabulky | TxtSaveOptions.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/Metoda | Popis: |
|---|---|
Document.Save | Zapisuje dokument do souboru, proudu nebo výstupního cíle ve vybraném formátu. |
SaveFormat | Enum identifikující cílový formát pro operaci uložení. |
SaveOptions | Abstraktní základní třída pro konfiguraci ukládání specifickou pro formát; CreateSaveOptions(saveFormat) vrací odpovídající podtřídu. |
OoxmlSaveOptions | Možnosti pro DOCX, DOCM, DOTX, DOTM a Flat OPC — heslo, soulad, komprese. |
MarkdownSaveOptions | Možnosti exportu do Markdownu — vykreslování seznamů/odkazů, zpracování obrázků. |
TxtSaveOptions / TxtSaveOptionsBase | Možnosti exportu prostého textu — kódování, konce řádků, rozvržení tabulky. |
FileFormatUtil.DetectFileFormat | Detekuje formát souboru před jeho načtením nebo konverzí. |
FileFormatUtil.SaveFormatToExtension / ExtensionToSaveFormat | Převádí mezi hodnotou SaveFormat a příponou souboru. |