如何使用 GroupDocs.Merger for Java 合并 MHT 文件 – 完整的 MHT 合并指南

在当今节奏快速的数字环境中,how to merge mht 文件的高效合并是需要合并网页存档的开发者常见的挑战。将多个 MHT 文件合并为单个文档可以简化数据处理,降低存储开销,并使后续处理更加容易。在本指南中,我们将逐步演示如何使用 GroupDocs.Merger for Java,让你能够快速自信地掌握 how to merge mht。

快速答案

  • 应该使用哪个库? GroupDocs.Merger for Java
  • 我可以合并超过两个 MHT 文件吗? 是的 – 可重复调用 join
  • 我需要许可证吗? 试用许可证可用于评估;生产环境需要付费许可证
  • 需要哪个 Java 版本? JDK 8+(任何现代 JDK)
  • 合并需要多长时间? 对于小于 50 MB 的文件通常只需几秒

什么是 MHT 文件?

MHT(MHTML)文件是一种网页存档,将 HTML 页面及其所有资源——图片、CSS、脚本——打包成单个文件。这使其非常适合离线查看或归档,而合并多个 MHT 文件则可以创建一个统一的存档,便于分发。

为什么使用 GroupDocs.Merger for Java 合并 MHT?

GroupDocs.Merger for Java 只需三行代码即可完成 MHT 合并,并支持 50 多种输入和输出格式。它能够在使用不到 200 MB 堆内存的情况下处理高达 500 MB 的文件,这意味着即使在资源有限的服务器上也能合并大型网页存档,而不会耗尽资源。

前置条件

  1. Java Development Kit (JDK) – 已安装 JDK 8 或更高版本。
  2. IDE – IntelliJ IDEA、Eclipse 或任何你喜欢的编辑器。
  3. GroupDocs.Merger for Java – 将库添加为 Maven/Gradle 依赖(见下文)。

设置 GroupDocs.Merger for Java

将库添加到项目中:

Maven:

<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-merger</artifactId>
    <version>LATEST_VERSION</version>
</dependency>

Gradle:

implementation 'com.groupdocs:groupdocs-merger:LATEST_VERSION'

你也可以从官方发布页面下载最新的 JAR:GroupDocs.Merger for Java 发布。

许可证获取

GroupDocs 提供免费试用,您可以立即测试合并功能。生产使用时,请从 GroupDocs 门户获取永久许可证,或在评估期间申请临时许可证。

分步指南:如何合并 MHT 文件

1. 加载并初始化合并器

Merger 类是所有合并操作的入口点。它代表一次合并会话并保存源文件列表。

import com.groupdocs.merger.Merger;

public class FeatureLoadAndInitialize {
    public static void run() throws Exception {
        String documentPath = "YOUR_DOCUMENT_DIRECTORY/SAMPLE_MHT";
        
        // Initialize Merger with the source MHT file
        Merger merger = new Merger(documentPath);
    }
}

说明: Merger 实例将第一个 MHT 文件准备为基础文档。完成此步骤后,您可以根据需要添加任意数量的额外存档。

2. 添加额外的 MHT 文件

join 方法将另一个 MHT 存档追加到当前合并队列中。您可以重复调用它以包含任意数量的文件。

public class FeatureAddAnotherMht {
    public static void run() throws Exception {
        String documentPath = "YOUR_DOCUMENT_DIRECTORY/SAMPLE_MHT";
        String additionalDocumentPath = "YOUR_DOCUMENT_DIRECTORY/SAMPLE_MHT_2";
        
        Merger merger = new Merger(documentPath);
        
        // Add another MHT file
        merger.join(additionalDocumentPath);
    }
}

说明: 每次调用 join 都会向内部集合中添加一个文件,保持您调用方法的顺序。

3. 保存合并结果

调用 save 将单个合并后的 MHT 文件写入您指定的目标位置。

public class FeatureSaveMergedFile {
    public static void run() throws Exception {
        String documentPath = "YOUR_DOCUMENT_DIRECTORY/SAMPLE_MHT";
        String additionalDocumentPath = "YOUR_DOCUMENT_DIRECTORY/SAMPLE_MHT_2";
        String outputDirectory = "YOUR_OUTPUT_DIRECTORY";
        
        Merger merger = new Merger(documentPath);
        merger.join(additionalDocumentPath);
        
        String outputFile = outputDirectory + "/merged.mht";
        
        // Save the merged file
        merger.save(outputFile);
    }
}

说明: save 方法执行实际的合并工作,将所有排队文件的 HTML 主体和资源拼接成一个连贯的存档。

合并 MHT 文件的实际应用

  • 网页存档: 将网站的每日快照合并为一个存档,以满足合规报告需求。
  • 文档管理系统: 将相关网页存储为单一实体,简化索引和检索。
  • 数据整合: 将来自多个来源的导出报告合并为一个包,便于向利益相关者共享。

性能考虑因素

在处理大型 MHT 文件(数百兆)时,请牢记以下提示:

技巧原因
分配足够的堆防止合并期间出现 OutOfMemoryError。
重用同一 Merger 实例减少对象创建开销,保持内存使用低。
关闭未使用的流及时释放操作系统文件句柄,避免资源泄漏。
在专用线程上运行保持桌面应用 UI 响应,并将重处理隔离。

常见问题及解决方法

  • FileNotFoundException – 验证所有文件路径是绝对路径或相对于工作目录的正确相对路径。
  • OutOfMemoryError – 增加 JVM 堆内存 (-Xmx2g) 或将合并拆分为更小的批次。
  • 输出损坏 – 确保源 MHT 文件未损坏;如有必要,请重新导出。

常见问答

Q: 什么是 MHT 文件?
A: MHT(MHTML)文件将 HTML 页面及其所有资源打包为单个文件,以便离线查看。

Q: 我可以一次合并超过两个 MHT 文件吗?
A: 可以。在调用 save() 之前,对每个额外文件重复调用 merger.join()。

Q: 我的合并文件太大——我该怎么办?
A: 考虑将输出拆分为更小的部分,或通过删除不必要的图片和压缩资源来优化源 MHT 文件。

Q: GroupDocs.Merger 支持其他格式吗?
A: 当然。它支持 PDF、DOCX、PPTX、XLSX 等超过 50 种格式。

Q: 合并过程中出现错误应如何处理?
A: 将合并调用包装在 try‑catch 块中,验证文件路径,并确保对输出目录具有写入权限。

附加资源


最后更新: 2026-09-21
测试环境: GroupDocs.Merger Java 23.11(撰写时的最新版本)
作者: GroupDocs


相关教程