Convertire un documento in HTML, MHTML o EPUB
Anche i documenti in formato HTML e MHTML flow-layout sono molto popolari e possono essere utilizzati su qualsiasi piattaforma web. Per questo motivo, la conversione di documenti in HTML e MHTML è una caratteristica importante di Aspose.Words.
EPUB (abbreviazione di “Pubblicazione elettronica”) è un formato basato su HTML comunemente usato per la distribuzione di libri elettronici. Questo formato è completamente supportato in Aspose.Words per l’esportazione di libri elettronici compatibili con la maggior parte dei dispositivi di lettura.
Convertire un documento
Per una semplice conversione in HTML, MHTML o EPUB, viene utilizzato uno dei sovraccarichi del metodo Save. È possibile salvare il documento in un file o in un flusso e impostare esplicitamente il formato di salvataggio del documento di output o definirlo dall’estensione del nome del file.
L’esempio seguente mostra come convertire DOCX in HTML specificando un formato di salvataggio:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
// Load the document from disk. | |
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"Test File (docx).docx"); | |
// Save the document into HTML. | |
doc->Save(outputDataDir + u"Document_out.html", SaveFormat::Html); |
Per convertire un documento in MHTML o EPUB, utilizzare rispettivamente SaveFormat.Mhtml
o SaveFormat.Epub
.
Convertire un documento con informazioni di andata e ritorno
Il formato HTML non supporta molte funzioni Microsoft Word, e se abbiamo bisogno di ripristinare un modello di documento il più vicino possibile all’originale, abbiamo bisogno di salvare alcune informazioni extra all’interno del file HTML. Tali informazioni sono anche chiamate “informazioni di andata e ritorno”. A tale scopo, Aspose.Words fornisce la possibilità di esportare informazioni di andata e ritorno quando si salvano in HTML, MHTML o EPUB utilizzando la proprietà ExportRoundtripInformation. Il salvataggio delle informazioni di andata e ritorno consente di ripristinare le proprietà del documento come schede, commenti, intestazioni e piè di pagina durante il caricamento dei documenti dei formati elencati in un oggetto Document.
Il valore predefinito è true per HTML e false per MHTML e EPUB:
- Quando true, le informazioni di andata e ritorno vengono esportate come proprietà CSS-aw - * degli elementi HTML corrispondenti
- Quando false, non ci sono informazioni di andata e ritorno da inviare nei file prodotti
L’esempio di codice seguente mostra come esportare le informazioni di andata e ritorno quando si converte un documento da DOCX in HTML:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
// Load the document from disk. | |
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"Test File (doc).doc"); | |
System::SharedPtr<HtmlSaveOptions> options = System::MakeObject<HtmlSaveOptions>(); | |
// HtmlSaveOptions.ExportRoundtripInformation property specifies | |
// Whether to write the roundtrip information when saving to HTML, MHTML or EPUB. | |
// Default value is true for HTML and false for MHTML and EPUB. | |
options->set_ExportRoundtripInformation(true); | |
doc->Save(outputDataDir + u"ConvertDocumentToHtmlWithRoundtrip.html", options); |
Specificare le opzioni di salvataggio durante la conversione in HTML
Aspose.Words consente di convertire un documento Word in HTML utilizzando le opzioni di salvataggio predefinite o personalizzate. Alcuni esempi di opzioni di salvataggio personalizzate sono descritti di seguito.
Specificare una cartella per il salvataggio delle risorse
Usando Aspose.Words possiamo specificare una cartella fisica in cui tutte le risorse, come immagini, font e CSS esterni, vengono salvate quando un documento viene convertito in HTML. Per impostazione predefinita, questa è una stringa vuota.
Specificare la proprietà ResourceFolder è il modo più semplice per impostare la cartella in cui devono essere scritte tutte le risorse. Possiamo usare singole proprietà, come FontsFolder che salva i font nella cartella specificata e ImagesFolder che salva le immagini in una cartella specificata. Quando viene specificato un percorso relativo, FontsFolder e ImagesFolder si riferiscono alla cartella in cui si trova l’assembly di codice, ResourceFolder e CssStyleSheetFileName si riferiscono alla cartella di output in cui si trova il documento HTML.
In questo esempio, ResourceFolder specifica il percorso relativo. Questo percorso si riferisce alla cartella di output in cui viene salvato il documento HTML. Il valore della proprietà ResourceFolderAlias viene utilizzato per creare URLs per tutte le risorse.
Il seguente esempio di codice mostra come lavorare con queste proprietà:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
// The path to the documents directory. | |
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"Document.doc"); | |
System::SharedPtr<HtmlSaveOptions> saveOptions = System::MakeObject<HtmlSaveOptions>(); | |
saveOptions->set_CssStyleSheetType(CssStyleSheetType::External); | |
saveOptions->set_ExportFontResources(true); | |
saveOptions->set_ResourceFolder(outputDataDir + u"Resources"); | |
doc->Save(outputDataDir + u"ExportResourcesUsingHtmlSaveOptions.html", saveOptions); |
Utilizzando la proprietà ResourceFolderAlias, possiamo anche specificare il nome della cartella utilizzata per costruire URIs di tutte le risorse scritte in un documento HTML. Questo è il modo più semplice per specificare come deve essere generato URIs per tutti i file di risorse. Le stesse informazioni possono essere specificate separatamente per immagini e font tramite le proprietà ImagesFolderAlias e FontsFolderAlias, rispettivamente.
Tuttavia, non esiste una proprietà individuale per i CSS. Il comportamento del FontsFolder, FontsFolderAlias, ImagesFolder, ImagesFolderAlias e le proprietà CssStyleSheetFileName non vengono modificate. Si noti che la proprietà CssStyleSheetFileName viene utilizzata sia per specificare il nome della cartella che il nome del file.
- ResourceFolder ha priorità inferiore rispetto alle cartelle specificate tramite FontsFolder, ImagesFolder e CssStyleSheetFileName. Se la cartella specificata in ResourceFolder non esiste, verrà creata automaticamente.
- ResourceFolderAlias ha una priorità inferiore a FontsFolderAlias e ImagesFolderAlias. Se ResourceFolderAlias è vuoto, il valore della proprietà ResourceFolder verrà utilizzato per creare la risorsa URIs. Se ResourceFolderAlias è impostato su “.” (punto), la risorsa URIs conterrà solo nomi di file senza specificare un percorso.
Esportare le risorse dei font di codifica Base64
Aspose.Words fornisce la possibilità di specificare se le risorse dei font devono essere incorporate in HTML nelle codifiche Base64. Per eseguire questa operazione, utilizzare la proprietà ExportFontsAsBase64 - questa è un’estensione della proprietà ExportFontResources. Per impostazione predefinita, il suo valore è false e i font sono scritti in file separati. Ma se questa opzione è impostata su true, i font saranno incorporati nel CSS del documento nella codifica Base64. La proprietà ExportFontsAsBase64 influisce solo sul formato HTML e non su EPUB e MHTML.
Il seguente esempio di codice mostra come esportare i font con codifica Base64 in HTML:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"Document.doc"); | |
System::SharedPtr<HtmlSaveOptions> saveOptions = System::MakeObject<HtmlSaveOptions>(); | |
saveOptions->set_ExportFontResources(true); | |
saveOptions->set_ExportFontsAsBase64(true); | |
System::String outputPath = outputDataDir + u"ExportFontsAsBase64.html"; | |
doc->Save(outputPath, saveOptions); |
Specificare le opzioni di salvataggio durante la conversione in EPUB
Aspose.Words consente di convertire un documento Word in formato EPUB utilizzando le opzioni di salvataggio predefinite o personalizzate. È possibile specificare un numero di opzioni passando un’istanza di HtmlSaveOptions al metodo Save
.
L’esempio di codice seguente mostra come convertire un documento Word in EPUB specificando alcune opzioni di salvataggio personalizzate:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
// Load the document from disk. | |
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"Document.EpubConversion.doc"); | |
// Create a new instance of HtmlSaveOptions. This object allows us to set options that control | |
// How the output document is saved. | |
System::SharedPtr<HtmlSaveOptions> saveOptions = System::MakeObject<HtmlSaveOptions>(); | |
// Specify the desired encoding. | |
saveOptions->set_Encoding(System::Text::Encoding::get_UTF8()); | |
// Specify at what elements to split the internal HTML at. This creates a new HTML within the EPUB | |
// which allows you to limit the size of each HTML part. This is useful for readers which cannot read | |
// HTML files greater than a certain size e.g 300kb. | |
saveOptions->set_DocumentSplitCriteria(DocumentSplitCriteria::HeadingParagraph); | |
// Specify that we want to export document properties. | |
saveOptions->set_ExportDocumentProperties(true); | |
// Specify that we want to save in EPUB format. | |
saveOptions->set_SaveFormat(SaveFormat::Epub); | |
// Export the document as an EPUB file. | |
doc->Save(outputDataDir + u"ConvertDocumentToEPUB.ConvertDocumentToEPUB.epub", saveOptions); |