将文档转换为 HTML、MHTML 或 EPUB

HTML 和 MHTML 流式布局格式的文档也非常流行,并且可以在任何 Web 平台上使用。因此,将文档转换为 HTML 和 MHTML 是 Aspose.Words 的一个重要功能。

EPUB(“Electronic Publication"的缩写)是一种基于 HTML 的格式,常用于电子图书分发。 Aspose.Words 完全支持此格式,可导出与大多数阅读设备兼容的电子书。

转换文档

为了简单地转换为 HTML、MHTML 或 EPUB,可以使用 save 方法重载之一。您可以将文档保存到文件或流,并显式设置输出文档保存格式或从文件扩展名定义它。

以下示例显示如何将 DOCX 转换为 HTML 并指定保存格式:

# Load the document from disk.
doc = aw.Document(dataDir + "Test File.docx")

# Save the document into HTML.
doc.save(dataDir + "Document", aw.SaveFormat.HTML)

要将文档转换为 MHTML 或 EPUB,请分别使用 SaveFormat.MHTMLSaveFormat.EPUB

转换带有往返信息的文档

HTML格式不支持许多Microsoft Word功能,如果我们需要恢复尽可能接近原始的文档模型,我们需要在HTML文件中保存一些额外的信息。这种信息也称为"往返信息”。为此,Aspose.Words 提供了在使用 导出往返信息 属性保存为 HTML、MHTML 或 EPUB 时导出往返信息的功能。保存往返信息允许在将列出的格式的文档加载回 Document 对象期间恢复文档属性,例如选项卡、注释、页眉和页脚。

HTML 的默认值为 True,MHTML 和 EPUB 的默认值为 False

  • True 时,往返信息导出为 -aw -* 相应 HTML 元素的 CSS 属性
  • False 时,没有往返信息可输出到生成的文件中

以下代码示例演示如何在将文档从 DOCX 转换为 HTML 时导出往返信息:

指定转换为 HTML 时的保存选项

Aspose.Words 允许使用默认或自定义保存选项将 Word 文档转换为 HTML。下面描述了一些自定义保存选项的示例。

指定保存资源的文件夹

使用 Aspose.Words,我们可以指定一个物理文件夹,当文档转换为 HTML 时,所有资源(例如图像、字体和外部 CSS)都保存在其中。默认情况下,这是一个空字符串。

指定 resource_folder 属性是设置应写入所有资源的文件夹的最简单方法。我们可以使用单独的属性,例如将字体保存到指定文件夹的 fonts_folder 和将图像保存到指定文件夹的 images_folder。当指定相对路径时,fonts_folderimages_folder指的是代码程序集所在的文件夹,resource_foldercss_style_sheet_file_name指的是HTML文档所在的输出文件夹。

在此示例中,resource_folder 指定相对路径。该路径是指保存 HTML 文档的输出文件夹。 resource_folder_alias 属性的值用于创建所有资源的 URL。

以下代码示例展示了如何使用这些属性:

使用 resource_folder_alias 属性,我们还可以指定用于构造写入 HTML 文档的所有资源的 URI 的文件夹的名称。这是指定如何为所有资源文件生成 URI 的最简单方法。可以分别通过 images_folder_aliasfonts_folder_alias 属性分别为图像和字体指定相同的信息。

然而,CSS 没有单独的属性。 fonts_folderfonts_folder_aliasimages_folderimages_folder_aliascss_style_sheet_file_name 属性的行为不会更改。请注意,css_style_sheet_file_name 属性既用于指定文件夹名称又用于指定文件名。

导出 Base64 编码字体资源

Aspose.Words 提供了指定字体资源是否应以 Base64 编码嵌入到 HTML 中的功能。要执行此操作,请使用 export_fonts_as_base64 属性 - 这是 export_font_resources 属性的扩展。默认情况下,其值为 False,并且字体写入单独的文件中。但如果此选项设置为 True,字体将以 Base64 编码嵌入到文档的 CSS 中。 export_fonts_as_base64 属性仅影响 HTML 格式,不影响 EPUB 和 MHTML。

以下代码示例演示如何将 Base64 编码的字体导出为 HTML:

转换为 EPUB 时指定保存选项

Aspose.Words 允许使用默认或自定义保存选项将 Word 文档转换为 EPUB 格式。您可以通过将 HtmlSaveOptions 实例传递给 save 方法来指定多个选项。

以下代码示例演示如何通过指定一些自定义保存选项将 Word 文档转换为 EPUB:

# Load the document from disk.
doc = aw.Document(docs_base.my_dir + "Rendering.docx")

# Create a new instance of HtmlSaveOptions. This object allows us to set options that control
# How the output document is saved.
saveOptions = aw.saving.HtmlSaveOptions()

# Specify the desired encoding.
saveOptions.encoding = "utf-8"

# 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.document_split_criteria = aw.saving.DocumentSplitCriteria.HEADING_PARAGRAPH

# Specify that we want to export document properties.
saveOptions.export_document_properties = True

# Specify that we want to save in EPUB format.
saveOptions.save_format = aw.SaveFormat.EPUB

# Export the document as an EPUB file.
doc.save(docs_base.artifacts_dir + "Document.EpubConversion_out.epub", saveOptions)