Конвертиране на документ в HTML, MHTML или EPUB
Документи във формати HTML и MHTML поток-оформление също са много популярни и могат да се използват на всяка уеб платформа. Поради тази причина конвертирането на документи в HTML и MHTML е важна характеристика на Aspose.Words.
EPUB (съкратено за “електронна публикация”) е формат HTML, който обикновено се използва за разпространение на електронни книги. Този формат се поддържа напълно в Aspose.Words за експортиране на електронни книги, които са съвместими с повечето устройства за четене.
Конвертиране на документ
За просто преобразуване на HTML, MHTML или EPUB се използва едно от претоварванията на метода Save. Можете да запишете документа във файл или поток и изрично да зададете формат за записване на изходния документ или да го дефинирате от разширението на името на файла.
Следващият пример показва как да конвертирате DOCX в 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 (docx).docx"); | |
// Save the document into HTML. | |
doc->Save(outputDataDir + u"Document_out.html", SaveFormat::Html); |
За да конвертирате документ в MHTML или EPUB, Използвайте съответно SaveFormat.Mhtml
или SaveFormat.Epub
.
Конвертиране на документ с информация за отиване и връщане
Форматът HTML не поддържа много Microsoft Word функции и ако трябва да възстановим модел на документ възможно най-близо до оригинала, трябва да запазим допълнителна информация във файла HTML. Тази информация се нарича още “двупосочна информация”. За тази цел Aspose.Words осигурява възможност за експортиране на информация за отиване и връщане, когато се съхранява в HTML, MHTML или EPUB, използвайки ExportRoundtripInformation свойството. Записването на информацията за двупосочно пътуване позволява възстановяване на свойствата на документа, като например раздели, Коментари, горни и долни колонтитули, по време на зареждането на документите на изброените формати обратно в обект Document.
Стойността по подразбиране е true за HTML и false за MHTML и EPUB:
- Когато true, информацията за отиване и връщане се експортира като * CSS свойства на съответните HTML елементи
- Когато false няма информация за отиване и връщане, която да се извежда в произведени файлове
Следният пример за код показва как да експортирате информация за отиване и връщане, когато конвертирате документ от DOCX в 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); |
Задайте опциите за записване при конвертиране в HTML
Aspose.Words позволява конвертиране на Word документ в HTML, като се използват опциите за записване по подразбиране или по избор. Няколко примера за персонализирани опции за записване са описани по-долу.
Задаване на папка за спестяване на ресурси
С Aspose.Words можем да обозначим физическа папка, в която се записват всички ресурси, като например изображения, шрифтове и външни CSS, Когато документът се преобразува в HTML. По подразбиране това е празен низ.
Задаването на свойство ResourceFolder е най-простият начин за задаване на папката, в която трябва да бъдат написани всички ресурси. Можем да използваме отделни свойства, като FontsFolder, който записва шрифтове в определена папка и ImagesFolder, който записва изображения в определена папка. Когато е зададен относителен път, FontsFolder и ImagesFolder се отнасят до папката, където се намира Комплектът код, ResourceFolder и CssStyleSheetFileName се отнасят до изходната папка, където се намира документът HTML.
В този пример ResourceFolder задава относителния път. Този път се отнася до изходната папка, където е записан документът HTML. Стойността на свойството ResourceFolderAlias се използва за създаване на URLs за всички ресурси.
Следният пример за код показва как да работите с тези свойства:
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); |
Използвайки свойството ResourceFolderAlias, можем също да посочим името на папката, използвана за изграждане на URIs от всички ресурси, написани в документ HTML. Това е най-простият начин да се определи как URIs трябва да се генерира за всички ресурсни файлове. Същата информация може да бъде посочена за изображения и шрифтове поотделно чрез ImagesFolderAlias и FontsFolderAlias свойства, съответно.
Въпреки това, няма индивидуална собственост за CSS. Поведението на FontsFolder, FontsFolderAlias, ImagesFolder, ImagesFolderAlias и CssStyleSheetFileName свойствата не се променят. Обърнете внимание, че свойството CssStyleSheetFileName се използва както за задаване на име на папка, така и за име на файл.
- ResourceFolder има по-нисък приоритет от папките, посочени чрез FontsFolder, ImagesFolder и CssStyleSheetFileName. Ако папката, посочена в ResourceFolder, не съществува, тя ще бъде създадена автоматично.
- ResourceFolderAlias има по-нисък приоритет от FontsFolderAlias и ImagesFolderAlias. Ако ResourceFolderAlias е празна, стойността на свойството ResourceFolder ще се използва за създаване на ресурс URIs. Ако ResourceFolderAlias е зададено на “.” (точка), ресурсът URIs ще съдържа само имена на файлове, без да посочва път.
Експортиране на ресурси за кодиране на шрифтове Base64
Aspose.Words предоставя възможност за указване дали ресурсите на шрифта трябва да бъдат вградени в HTML в кодировки Base64. За да направите това, използвайте свойството ExportFontsAsBase64 – това е разширение на свойството ExportFontResources. По подразбиране стойността му е false, а шрифтовете се записват в отделни файлове. Но ако тази опция е зададена на true, шрифтовете ще бъдат вградени в CSS на документа в кодиране Base64. Свойството ExportFontsAsBase64 засяга само формата на HTML и не засяга EPUB и MHTML.
Следният примерен код показва как да експортирате Base64-кодирани шрифтове към 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); |
Задайте опциите за записване при конвертиране в EPUB
Aspose.Words позволява конвертиране на Word документ във формат EPUB, като се използват опциите за записване по подразбиране или по избор. Можете да зададете няколко опции, като подадете екземпляр от HtmlSaveOptions към метода Save
.
Следващият пример за код показва как да конвертирате документ Word в EPUB С задаване на някои опции за записване по избор:
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); |