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 simpleSave(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.Passwordpentru un fișier protejat cu parolă deschisă; aceasta este diferită deDocument.Protect, care restricționează editarea, dar nu criptează fișierul. - Alegeți
MarkdownSaveOptions.ExportImagesAsBase64pentru un singur fișier Markdown autonom, sauImagesFoldercâ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șit | Extensia fișierului nu corespunde formatului dorit | Folosiț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 salvare | Construiți un OoxmlSaveOptions, setați Password și transmiteți-l către Save |
| Exportul Markdown împrăștie fișierele imagine în mod neașteptat | Comportamentul implicit al MarkdownSaveOptions extrage imaginile în fișiere | Setaț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 tabelului | TxtSaveOptions.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.Save | Scrie documentul într-un fișier, flux sau destinație de ieșire într-un format ales. |
SaveFormat | Enum care identifică formatul țintă pentru o operație de salvare. |
SaveOptions | Clasă de bază abstractă pentru configurația de salvare specifică unui format; CreateSaveOptions(saveFormat) returnează subclasa corespunzătoare. |
OoxmlSaveOptions | Opțiuni pentru DOCX, DOCM, DOTX, DOTM și Flat OPC — parolă, conformitate, compresie. |
MarkdownSaveOptions | Opțiuni pentru exportul Markdown — redarea listelor/linkurilor, gestionarea imaginilor. |
TxtSaveOptions / TxtSaveOptionsBase | Opțiuni pentru exportul text simplu — codificare, întreruperi de linie, aspectul tabelului. |
FileFormatUtil.DetectFileFormat | Detectează formatul unui fișier înainte de a-l încărca sau converti. |
FileFormatUtil.SaveFormatToExtension / ExtensionToSaveFormat | Convertește între o valoare SaveFormat și o extensie de fișier. |