Documenten opslaan en exporteren
Documenten opslaan en exporteren
Document.Save schrijft een document naar een bestand of stream in een doelformaat. Het formaat wordt ofwel afgeleid van een bestandsextensie, expliciet opgegeven als een SaveFormat waarde, of aangestuurd door een SaveOptions subklasse — OoxmlSaveOptions, MarkdownSaveOptions of TxtSaveOptions — voor formaat-specifieke controle. Deze gids behandelt de Save overloads, de SaveFormat enum, OOXML-opslaanopties, Markdown- en platte-tekst-export, en het detecteren van een formaat vóór conversie.
Opslaan met Document.Save
De eenvoudigste aanroep, Document.Save(fileName), leidt het doelformaat af van de extensie van het bestand. Save(fileName, saveFormat) maakt het formaat expliciet, ongeacht de extensie, en Save(fileName, saveOptions) (of de bijbehorende Stream overloads) accepteert een SaveOptions subklasse voor formaat-specifieke instellingen. SaveOptions.CreateSaveOptions(saveFormat) is een statische fabriek die de juiste opties-subklasse teruggeeft voor een gegeven SaveFormat met reeds ingestelde standaardwaarden.
Een formaat kiezen met SaveFormat
De SaveFormat enum bevat elke opslaan-formaat-identificatie die de bibliotheek herkent. Document.Save schrijft volledig zowel naar als van de kern-documentformaten van deze editie — DOCX, DOCM, DOTX, DOTM en Flat OPC (plus de macro-ingeschakelde en sjabloonvarianten) — evenals Markdown en platte tekst. FileFormatUtil.SaveFormatToExtension(saveFormat) en ExtensionToSaveFormat(extension) converteren tussen de enum en een bestandsextensie-string.
Sommige SaveFormat-waarden staan in de enum voor API-volledigheid, maar komen overeen met formaten waarvoor deze verkorte, open-source-editie geen werkende lezer of schrijver implementeert — proberen op te slaan naar een van die formaten levert output op die niet gelijk is aan het brondocument. Houd je aan de hierboven genoemde formaten voor betrouwbare round-tripping.
OOXML-opties: DOCX, DOCM, DOTX, DOTM en Flat OPC
OoxmlSaveOptions configureert het opslaan in een van de Open XML-formaten. De eigenschap SaveFormat selecteert welke specifieke variant moet worden weggeschreven; Password stelt een open wachtwoord in voor het opgeslagen bestand (onafhankelijk van de bewerkingsbeperkingen van Document.Protect); Compliance selecteert het OOXML-striktheidsniveau; en CompressionLevel / Zip64Mode regelen de onderliggende ZIP-verpakking. Maak er één met new OoxmlSaveOptions(saveFormat) of via SaveOptions.CreateSaveOptions(saveFormat).
Exporteren naar Markdown
MarkdownSaveOptions regelt een Markdown-export: ListExportMode en LinkExportMode bepalen hoe lijsten en hyperlinks worden weergegeven, ImagesFolder / ImagesFolderAlias regelen waar uitgepakte afbeeldingen worden weggeschreven en hoe ze worden gerefereerd, ExportImagesAsBase64 integreert ze inline in plaats daarvan, en TableContentAlignment beïnvloedt de gegenereerde tabelopmaak. Geef een MarkdownSaveOptions-instantie door aan Document.Save(fileName, saveOptions) met een .md bestandsnaam, of stel zijn SaveFormat expliciet in.
Exporteren naar platte tekst
TxtSaveOptions (via zijn basis-TxtSaveOptionsBase, gedeeld met MarkdownSaveOptions) regelt de export van platte tekst: Encoding stelt de tekencodering in, ParagraphBreak stelt de regeleinde-tekenreeks in, MaxCharactersPerLine breekt lange regels af, SimplifyListLabels normaliseert lijstpunten/-nummers naar platte tekens, en PreserveTableLayout probeert tabelkolommen uitgelijnd te houden met spaties.
Detecteren van een formaat vóór conversie
Voordat je een bestand converteert waarvan je het formaat nog niet kent, geeft FileFormatUtil.DetectFileFormat(fileName) een FileFormatInfo terug met het gedetecteerde LoadFormat. Combineer dit met FileFormatUtil.LoadFormatToSaveFormat(loadFormat) om te bepalen of een round-trip via de door deze editie ondersteunde formaten mogelijk is voordat je Document.Save probeert.
Tips en best practices
- Gebruik
Save(fileName, saveOptions)in plaats van de gewoneSave(fileName, saveFormat)overload wanneer je format-specifiek gedrag moet controleren, zoals het renderen van Markdown-lijsten of OOXML-compressie. - Stel
OoxmlSaveOptions.Passwordin voor een open-wachtwoordbeschermd bestand; dit staat los vanDocument.Protect, die bewerken beperkt maar het bestand niet versleutelt. - Kies
MarkdownSaveOptions.ExportImagesAsBase64voor één zelfvoorzienend Markdown-bestand, ofImagesFolderwanneer je een map met uitgepakte afbeeldingsbestanden naast de Markdown wilt. - Roep
SaveOptions.CreateSaveOptions(saveFormat)aan in plaats van handmatig de concrete optiesklasse te kiezen wanneer het doelformaat tijdens runtime wordt bepaald. - Verifieer een doelformaat met
FileFormatUtilvóór conversie in plaats van te vertrouwen op een kale bestandsextensie, die foutief of misleidend kan zijn.
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
Save(fileName) kiest het verkeerde formaat | De bestandsextensie komt niet overeen met het beoogde formaat | Gebruik Save(fileName, saveFormat) of Save(fileName, saveOptions) om het formaat expliciet te maken |
| Opgeslagen OOXML-bestand kan niet worden geopend met een wachtwoord | OoxmlSaveOptions.Password was niet ingesteld vóór het opslaan | Maak een OoxmlSaveOptions, stel Password in, en geef deze door aan Save |
| Markdown-export verspreidt afbeeldingsbestanden onverwacht | Standaardgedrag van MarkdownSaveOptions extraheert afbeeldingen naar bestanden | Stel ExportImagesAsBase64 = true in voor één enkel zelfvoorzienend bestand, of stel ImagesFolder in om te bepalen waar afbeeldingen worden geplaatst |
| Platte-tekstexport verliest de uitlijning van tabelkolommen | TxtSaveOptions.PreserveTableLayout blijft op de standaard | Stel PreserveTableLayout = true in voordat u opslaat |
FAQ
Hoe sla ik een document op in een specifiek formaat, ongeacht de bestandsextensie?
Roep Save(fileName, saveFormat) aan met een expliciete SaveFormat-waarde, of Save(fileName, saveOptions) met een overeenkomende SaveOptions-subklasse.
Welke formaten leest en schrijft deze editie in beide richtingen?
DOCX, DOCM, DOTX, DOTM, Flat OPC (plus its macro-enabled and template variants), Markdown, en plain text.
Hoe kan ik een opgeslagen bestand met een wachtwoord beveiligen?
Stel Password in op een OoxmlSaveOptions-instantie en geef deze door aan Document.Save(fileName, saveOptions).
Hoe kan ik de regeleinden in een geëxporteerd tekstbestand regelen?
Stel ParagraphBreak in op een TxtSaveOptions-instantie vóór het opslaan.
Hoe controleer ik welk formaat een bestand heeft voordat ik het converteer?
Roep FileFormatUtil.DetectFileFormat(fileName) aan en lees de geretourneerde FileFormatInfo.LoadFormat.
API Reference Samenvatting
| Klasse/Methode | Beschrijving |
|---|---|
Document.Save | Schrijft het document naar een bestand, stream of outputdoel in een gekozen formaat. |
SaveFormat | Enum die het doelformaat voor een opslagoperatie identificeert. |
SaveOptions | Abstracte basisklasse voor formaat-specifieke opslagconfiguratie; CreateSaveOptions(saveFormat) retourneert de bijpassende subklasse. |
OoxmlSaveOptions | Opties voor DOCX, DOCM, DOTX, DOTM en Flat OPC — wachtwoord, compliance, compressie. |
MarkdownSaveOptions | Opties voor Markdown-export — lijst-/linkweergave, afbeeldingverwerking. |
TxtSaveOptions / TxtSaveOptionsBase | Opties voor plain-text-export — codering, regeleinden, tabelindeling. |
FileFormatUtil.DetectFileFormat | Detecteert het formaat van een bestand voordat het wordt geladen of geconverteerd. |
FileFormatUtil.SaveFormatToExtension / ExtensionToSaveFormat | Converteer tussen een SaveFormat-waarde en een bestandsextensie. |