Salvarea și exportarea documentelor

Salvarea și exportarea documentelor

Salvarea și exportarea documentelor

Document.Save scrie un document într-un fișier sau flux într-un format țintă. Formatul este fie dedus din extensia fișierului, fie furnizat explicit ca o valoare SaveFormat, sau este determinat de o subclasă SaveOptions — OoxmlSaveOptions, MarkdownSaveOptions sau TxtSaveOptions — pentru control specific formatului. Acest ghid acoperă suprasarcinile Save, enumul SaveFormat, opțiunile de salvare OOXML, exportul în Markdown și text simplu, și detectarea unui format înainte de conversie.


Salvarea cu Document.Save

Cel mai simplu apel, Document.Save(fileName), deduce formatul țintă din extensia fișierului. Save(fileName, saveFormat) face formatul explicit, indiferent de extensie, și Save(fileName, saveOptions) (sau suprasarcinile corespunzătoare Stream) acceptă o subclasă SaveOptions pentru setări specifice formatului. SaveOptions.CreateSaveOptions(saveFormat) este un factory static care returnează subclasa de opțiuni corectă pentru un SaveFormat dat, cu valorile implicite deja setate.


Alegerea unui format cu SaveFormat

Enumul SaveFormat enumeră fiecare identificator de format de salvare recunoscut de bibliotecă. Document.Save scrie complet atât către, cât și din formatele de document de bază ale acestei ediții — DOCX, DOCM, DOTX, DOTM și Flat OPC (plus variantele sale cu macro-uri și șabloane) — precum și Markdown și text simplu. FileFormatUtil.SaveFormatToExtension(saveFormat) și ExtensionToSaveFormat(extension) convertesc între enum și un șir de extensie de fișier.

Unele valori SaveFormat există în enum pentru completitudinea API, dar corespund unor formate pe care această ediție redusă, open-source, nu implementează un cititor sau scriitor funcțional — încercarea de a salva într-unul dintre acestea produce un rezultat care nu este echivalent cu documentul sursă. Rămâneți la formatele menționate mai sus pentru o conversie în ambele sensuri fiabilă.


Opțiuni OOXML: DOCX, DOCM, DOTX, DOTM și Flat OPC

OoxmlSaveOptions configurează salvarea în oricare dintre formatele Open XML. Proprietatea sa SaveFormat selectează ce variantă specifică să fie scrisă; Password stabilește o parolă de deschidere pentru fișierul salvat (independentă de restricțiile de editare ale lui Document.Protect); Compliance selectează nivelul de strictețe OOXML; iar CompressionLevel / Zip64Mode controlează ambalarea ZIP de bază. Construiți una cu new OoxmlSaveOptions(saveFormat) sau prin SaveOptions.CreateSaveOptions(saveFormat).


Exportarea în Markdown

MarkdownSaveOptions controlează exportul în Markdown: ListExportMode și LinkExportMode guvernează modul în care listele și link-urile sunt randate, ImagesFolder / ImagesFolderAlias controlează unde sunt scrise imaginile extrase și cum sunt referențiate, ExportImagesAsBase64 le încorporează în linie în schimb, iar TableContentAlignment afectează markup-ul tabelului generat. Transmiteți o instanță MarkdownSaveOptions către Document.Save(fileName, saveOptions) cu un nume de fișier .md, sau setați explicit SaveFormat.


Exportarea în text simplu

TxtSaveOptions (prin intermediul TxtSaveOptionsBase de bază, partajat cu MarkdownSaveOptions) controlează exportul în text simplu: Encoding stabilește codarea caracterelor, ParagraphBreak stabilește șirul de terminare a liniei, MaxCharactersPerLine înfășoară liniile lungi, SimplifyListLabels normalizează marcatorii/numerele listelor la caractere simple, iar PreserveTableLayout încearcă să mențină coloanele tabelului aliniate folosind spații.


Detectarea formatului înainte de conversie

Înainte de a converti un fișier al cărui format nu îl cunoașteți deja, FileFormatUtil.DetectFileFormat(fileName) returnează un FileFormatInfo cu LoadFormat detectat. Combinați acest lucru cu FileFormatUtil.LoadFormatToSaveFormat(loadFormat) pentru a decide dacă un ciclu complet prin formatele suportate de această ediție este posibil înainte de a încerca Document.Save.


Sfaturi și cele mai bune practici

  • Folosiți Save(fileName, saveOptions) în locul supraincarcării simple Save(fileName, saveFormat) ori de câte ori aveți nevoie să controlați comportamentul specific formatului, cum ar fi redarea listelor Markdown sau comprimarea OOXML.
  • Setați OoxmlSaveOptions.Password pentru un fișier protejat cu parolă deschisă; aceasta este diferită de Document.Protect, care restricționează editarea, dar nu criptează fișierul.
  • Alegeți MarkdownSaveOptions.ExportImagesAsBase64 pentru un singur fișier Markdown autonom, sau ImagesFolder când doriți un dosar cu fișiere imagine extrase alături de Markdown.
  • Apelați SaveOptions.CreateSaveOptions(saveFormat) în loc să selectați manual clasa concretă de opțiuni când formatul țintă este determinat la rulare.
  • Verificați un format țintă cu FileFormatUtil înainte de conversie, în loc să vă bazați pe extensia de fișier simplă, care poate fi incorectă sau înșelătoare.

Probleme comune

ProblemăCauzăRemediere
Save(fileName) alege formatul greșitExtensia fișierului nu corespunde formatului doritFolosiți Save(fileName, saveFormat) sau Save(fileName, saveOptions) pentru a face formatul explicit
Fișierul OOXML salvat nu se deschide cu o parolăOoxmlSaveOptions.Password nu a fost setat înainte de salvareConstruiți un OoxmlSaveOptions, setați Password și transmiteți-l către Save
Exportul Markdown împrăștie fișierele imagine în mod neașteptatComportamentul implicit al MarkdownSaveOptions extrage imaginile în fișiereSetați ExportImagesAsBase64 = true pentru un singur fișier auto-conținut, sau setați ImagesFolder pentru a controla unde sunt salvate imaginile
Exportul în text simplu pierde alinierea coloanelor tabeluluiTxtSaveOptions.PreserveTableLayout este lăsat la valoarea implicităSetaţi PreserveTableLayout = true înainte de salvare

FAQ

Cum pot salva un document într-un format specific, indiferent de extensia fișierului?

Apelă Save(fileName, saveFormat) cu o valoare explicită SaveFormat, sau Save(fileName, saveOptions) cu o subclasă SaveOptions corespunzătoare.

Ce formate poate această ediție să citească și să scrie în ambele sensuri?

DOCX, DOCM, DOTX, DOTM, Flat OPC (plus variantele sale cu macro-uri și cele de șablon), Markdown și text simplu.

Cum pot proteja cu parolă un fișier salvat?

Setează Password pe o instanță OoxmlSaveOptions și transmite-o către Document.Save(fileName, saveOptions).

Cum pot controla terminatoarele de linie într-un fișier text exportat?

Setează ParagraphBreak pe o instanță TxtSaveOptions înainte de salvare.

Cum verific ce format are un fișier înainte de a-l converti?

Apelă FileFormatUtil.DetectFileFormat(fileName) și citește FileFormatInfo.LoadFormat returnat.


API Reference Rezumat

Clasă/MetodăDescriere:
Document.SaveScrie documentul într-un fișier, flux sau destinație de ieșire într-un format ales.
SaveFormatEnum care identifică formatul țintă pentru o operație de salvare.
SaveOptionsClasă de bază abstractă pentru configurația de salvare specifică unui format; CreateSaveOptions(saveFormat) returnează subclasa corespunzătoare.
OoxmlSaveOptionsOpțiuni pentru DOCX, DOCM, DOTX, DOTM și Flat OPC — parolă, conformitate, compresie.
MarkdownSaveOptionsOpțiuni pentru exportul Markdown — redarea listelor/linkurilor, gestionarea imaginilor.
TxtSaveOptions / TxtSaveOptionsBaseOpțiuni pentru exportul text simplu — codificare, întreruperi de linie, aspectul tabelului.
FileFormatUtil.DetectFileFormatDetectează formatul unui fișier înainte de a-l încărca sau converti.
FileFormatUtil.SaveFormatToExtension / ExtensionToSaveFormatConvertește între o valoare SaveFormat și o extensie de fișier.

Vezi și:

 Română