用 Java 将 HTML 转换为 MHTML

HTML 文件通常通过指定 URL 来链接外部资源,如图片、视频、音频和其他文档。如果要归档或保存包含这些外部资源的网页,就需要将它们与 HTML 文件一起单独保存,这就显得有些复杂和杂乱。MHTML 是一种将 HTML 与外部资源合并为一个 .mht 文件的文件格式。MHTML 使用 MIME 电子邮件协议,将网页元素合并到一个归档文件中,使网页归档变得更容易。

本文介绍如何使用 Aspose.HTML for Java 库将 HTML 转换为 MHTML,以及如何应用 MHTMLSaveOptions

通过一行 Java 代码将 HTML 转换为 MHTML

Converter 类的静态方法主要用于将 HTML 代码转换成各种格式的最简单方法。只需一行代码,您就可以在 Java 应用程序中将 HTML 转换为 MHTML!

1// Convert HTML to MHTML in one line using Java
2
3// Invoke the convertHTML() method to convert HTML code to MHTML file
4Converter.convertHTML("<h1>Hello, Word!</h1>", ".", new MHTMLSaveOptions(), "convert-with-single-line.mht");

在示例中,我们使用了 Converter 类的 convertHTML(content, baseUri, options, outputPath) 方法,该方法需要四个参数:包含要转换的 HTML 代码的字符串、输入 HTML 文件的基本文件夹、MHTMLSaveOptions 类的实例以及保存转换后文件的输出文件路径。

用 Java 将 HTML 转换为 MHTML

使用 convertHTML()方法将文件转换为另一种格式是一系列操作,其中包括文档加载和保存。下一个示例将逐行解释如何将 HTML 转换为 MHTML:

  1. 使用 HTMLDocument 类加载 HTML 文件。
  2. 创建 MHTMLSaveOptions 类的实例。
  3. 使用 Converter 类的 convertHTML(document, options, savePath) 方法,并向其传递所需的参数。
 1// Convert HTML to MHTML in Java
 2
 3// Initialize an HTML document from the file
 4HTMLDocument document = new HTMLDocument("drawing.html");
 5
 6// Initialize MHTMLSaveOptions
 7MHTMLSaveOptions options = new MHTMLSaveOptions();
 8
 9// Convert HTML to MHTML
10Converter.convertHTML(document, options, "drawing-output.mht");

您可以从 GitHub 下载完整的示例和数据文件。

使用 MHTMLSaveOptions 将 HTML 转换为 MHTML

Aspose.HTML 允许使用默认或自定义保存选项将 HTML 转换为 MHTML。使用 MHTMLSaveOptions 可以自定义渲染过程。您可以指定 UrlRestrictionMaxHandlingDepth 等。要使用 MHTMLSaveOptions 将 HTML 转换为 MHTML,您需要遵循以下几个步骤:

  1. 加载或准备 HTML 文件。在本例中,我们将从头开始创建一个 HTML 源文件。
  2. 创建一个新的 MHTMLSaveOptions 对象。
  3. 使用 Converter 类中的 convertHTML()方法之一将 HTML 文档保存为 MHTML 文件。
 1// Convert HTML to MHTML with custom settings using Java
 2
 3// Prepare HTML code with a link to another file and save it to the file as "document.html"
 4String code = "<span>Hello, World!!</span> " +
 5        "<a href='document2.html'>click</a>";
 6FileHelper.writeAllText("document.html", code);
 7
 8// Prepare HTML code and save it to the file as "document2.html"
 9code = "<span>Hello, World!!</span>";
10FileHelper.writeAllText("document2.html", code);
11
12// Change the value of the resource linking depth to 1 in order to convert document with directly linked resources
13MHTMLSaveOptions options = new MHTMLSaveOptions();
14options.getResourceHandlingOptions().setMaxHandlingDepth(1);
15
16// Convert HTML to MHTML
17Converter.convertHTML("document.html", options, "output-options.mht");

MHTMLSaveOptions() 构造函数初始化一个 MHTMLSaveOptions类实例,并将其传递给 convertHTML() 方法。该方法接收 document, options, 输出文件路径 savePath 并执行转换。在上面的示例中,我们使用了 setMaxHandlingDepth(value) 方法,该方法可设置要处理的资源的最大深度。值 = 1 表示只处理保存文档中直接引用的页面。默认值为 3。

结论

MHTML 将 HTML 和所有外部资源合并到一个文件中,消除了管理单个文件的复杂性,从而简化了归档和共享网页的过程。Aspose.HTML for Java 提供了一种简单的解决方案,可使用 Converter 和 MHTMLSaveOptions 类将 HTML 转换为 MHTML。

利用其可定制的功能,您可以

所提供的 Java 示例演示了基本和高级方案,使开发人员能够在其 Java 应用程序中有效地实现 HTML 到 MHTML 的转换。

要了解有关 MHTMLSaveOptions 的更多信息,请阅读 Fine-Tuning Converters 一文。

Aspose.HTML 提供免费的在线 HTML 到 MHTML 转换器,可将 HTML 高质量、方便快捷地转换为 MHTML。只需上传、转换您的文件,几秒钟就能得到结果!

文本 “HTML 到 MHTML 转换器”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.