Salvataggio ed Esportazione dei Documenti

Salvataggio ed Esportazione dei Documenti

Salvataggio ed esportazione dei documenti

Document.Save scrive un documento su un file o stream in un formato di destinazione. Il formato viene inferito dall’estensione del file, specificato esplicitamente come valore SaveFormat, o determinato da una sottoclasse SaveOptions — OoxmlSaveOptions, MarkdownSaveOptions o TxtSaveOptions — per un controllo specifico del formato. Questa guida copre le sovraccarichi Save, l’enum SaveFormat, le opzioni di salvataggio OOXML, l’esportazione in Markdown e testo semplice, e il rilevamento di un formato prima della conversione.


Salvataggio con Document.Save

La chiamata più semplice, Document.Save(fileName), inferisce il formato di destinazione dall’estensione del file. Save(fileName, saveFormat) rende esplicito il formato indipendentemente dall’estensione, e Save(fileName, saveOptions) (o le sovraccarichi corrispondenti Stream) accetta una sottoclasse SaveOptions per impostazioni specifiche del formato. SaveOptions.CreateSaveOptions(saveFormat) è una factory statica che restituisce la corretta sottoclasse di opzioni per un dato SaveFormat con i suoi valori predefiniti già impostati.


Scelta di un formato con SaveFormat

L’enum SaveFormat elenca tutti gli identificatori di formato di salvataggio riconosciuti dalla libreria. Document.Save scrive completamente sia verso che da questi formati di documento principali di questa edizione — DOCX, DOCM, DOTX, DOTM e Flat OPC (oltre alle sue varianti con macro e template) — così come Markdown e testo semplice. FileFormatUtil.SaveFormatToExtension(saveFormat) e ExtensionToSaveFormat(extension) convertono tra l’enum e una stringa di estensione del file.

Alcuni valori SaveFormat esistono nell’enum per completezza API ma corrispondono a formati che questa edizione ridotta, open source, non implementa né un lettore né uno scrittore funzionante — tentare di salvare in uno di questi produce un output che non è equivalente al documento originale. Attenersi ai formati elencati sopra per un round-tripping affidabile.


Opzioni OOXML: DOCX, DOCM, DOTX, DOTM e Flat OPC

OoxmlSaveOptions configura il salvataggio in uno qualsiasi dei formati Open XML. La sua proprietà SaveFormat seleziona quale variante specifica scrivere; Password imposta una password di apertura sul file salvato (indipendente dalle restrizioni di modifica di Document.Protect); Compliance seleziona il livello di rigore OOXML; e CompressionLevel / Zip64Mode controllano il packaging ZIP sottostante. Costruiscine uno con new OoxmlSaveOptions(saveFormat) o tramite SaveOptions.CreateSaveOptions(saveFormat).


Esportazione in Markdown

MarkdownSaveOptions controlla un’esportazione Markdown: ListExportMode e LinkExportMode determinano come vengono renderizzate le liste e i collegamenti ipertestuali, ImagesFolder / ImagesFolderAlias controllano dove vengono scritte le immagini estratte e come vengono referenziate, ExportImagesAsBase64 le incorpora inline invece, e TableContentAlignment influisce sul markup delle tabelle generate. Passa un’istanza MarkdownSaveOptions a Document.Save(fileName, saveOptions) con un nome file .md, oppure imposta esplicitamente il suo SaveFormat.


Esportazione in testo semplice

TxtSaveOptions (tramite il suo TxtSaveOptionsBase di base, condiviso con MarkdownSaveOptions) controlla l’esportazione in testo semplice: Encoding imposta la codifica dei caratteri, ParagraphBreak imposta la stringa di terminazione di riga, MaxCharactersPerLine avvolge le linee lunghe, SimplifyListLabels normalizza i punti elenco/numeri delle liste in caratteri semplici, e PreserveTableLayout tenta di mantenere le colonne delle tabelle allineate usando spazi.


Rilevare un formato prima della conversione

Prima di convertire un file il cui formato non conosci, FileFormatUtil.DetectFileFormat(fileName) restituisce un FileFormatInfo con il LoadFormat rilevato. Combina questo con FileFormatUtil.LoadFormatToSaveFormat(loadFormat) per decidere se è possibile un round-trip attraverso i formati supportati da questa edizione prima di tentare Document.Save.


Suggerimenti e migliori pratiche

  • Usa Save(fileName, saveOptions) invece della semplice Save(fileName, saveFormat) overload ogni volta che devi controllare il comportamento specifico del formato, come il rendering delle liste Markdown o la compressione OOXML.
  • Imposta OoxmlSaveOptions.Password per un file protetto da password aperta; è diverso da Document.Protect, che limita la modifica ma non cripta il file.
  • Scegli MarkdownSaveOptions.ExportImagesAsBase64 per un singolo file Markdown autonomo, oppure ImagesFolder quando desideri una cartella di file immagine estratti accanto al Markdown.
  • Chiama SaveOptions.CreateSaveOptions(saveFormat) invece di selezionare manualmente la classe di opzioni concreta quando il formato di destinazione è determinato a runtime.
  • Verifica un formato di destinazione con FileFormatUtil prima della conversione, invece di fare affidamento solo sull’estensione del file, che può essere errata o fuorviante.

Problemi comuni

ProblemaCausaCorrezione
Save(fileName) sceglie il formato sbagliatoL’estensione del file non corrisponde al formato previstoUsa Save(fileName, saveFormat) o Save(fileName, saveOptions) per rendere esplicito il formato
Il file OOXML salvato non si apre con una passwordOoxmlSaveOptions.Password non è stato impostato prima del salvataggioCostruisci un OoxmlSaveOptions, imposta Password e passalo a Save
L’esportazione Markdown sparpaglia i file immagine in modo inattesoIl comportamento predefinito di MarkdownSaveOptions estrae le immagini in fileImposta ExportImagesAsBase64 = true per un unico file autonomo, oppure imposta ImagesFolder per controllare dove vanno le immagini
L’esportazione in testo semplice perde l’allineamento delle colonne della tabellaTxtSaveOptions.PreserveTableLayout è lasciato al suo valore predefinitoImposta PreserveTableLayout = true prima di salvare

FAQ

Come salvo un documento in un formato specifico indipendentemente dall’estensione del file?

Chiama Save(fileName, saveFormat) con un valore SaveFormat esplicito, oppure Save(fileName, saveOptions) con una sottoclasse SaveOptions corrispondente.

Quali formati legge e scrive questa edizione in entrambe le direzioni?

DOCX, DOCM, DOTX, DOTM, Flat OPC (oltre alle sue varianti con macro e template), Markdown e testo semplice.

Come proteggere con password un file salvato?

Imposta Password su un’istanza OoxmlSaveOptions e passala a Document.Save(fileName, saveOptions).

Come controllo le terminazioni di riga in un file di testo esportato?

Imposta ParagraphBreak su un’istanza TxtSaveOptions prima di salvare.

Come faccio a verificare quale formato ha un file prima di convertirlo?

Chiama FileFormatUtil.DetectFileFormat(fileName) e leggi il FileFormatInfo.LoadFormat restituito.


API Reference Riepilogo

Classe/MetodoDescrizione
Document.SaveScrive il documento su un file, stream o destinazione di output in un formato scelto.
SaveFormatEnum che identifica il formato di destinazione per un’operazione di salvataggio.
SaveOptionsClasse base astratta per la configurazione di salvataggio specifica del formato; CreateSaveOptions(saveFormat) restituisce la sottoclasse corrispondente.
OoxmlSaveOptionsOpzioni per DOCX, DOCM, DOTX, DOTM e Flat OPC — password, conformità, compressione.
MarkdownSaveOptionsOpzioni per l’esportazione Markdown — rendering di elenchi/link, gestione delle immagini.
TxtSaveOptions / TxtSaveOptionsBaseOpzioni per l’esportazione in testo semplice — codifica, interruzioni di riga, disposizione delle tabelle.
FileFormatUtil.DetectFileFormatRileva il formato di un file prima di caricarlo o convertirlo.
FileFormatUtil.SaveFormatToExtension / ExtensionToSaveFormatConverti tra un valore SaveFormat e un’estensione di file.

Vedi anche

 Italiano