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

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

快速答案

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

什么是 MHT 文件?

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

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

  • 格式无关: 处理 MHT 的同时支持 PDF、DOCX、PPTX 等。
  • 简洁 API: 只需几行代码即可加载、合并并保存。
  • 性能优化: 针对大文档进行优化,内存占用最小。
  • 企业就绪: 支持授权、安全和云集成。

前置条件

  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 releases.

许可证获取

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

合并 MHT 文件的分步指南

1. 加载并初始化 Merger

首先,创建一个指向主 MHT 文件的 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 都会向合并队列中添加一个文件,允许您根据需要合并任意数量的 MHT 文档。

3. 保存合并结果

最后,将合并后的内容写入磁盘。

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 方法会整合所有排队的文件,并将单个 MHT 存档写入您指定的位置。

合并 MHT 文件的实际应用

  • Web Archiving(网页归档): 将网站的每日快照合并为一个存档,以用于合规报告。
  • Document Management Systems(文档管理系统): 将相关网页存储为单一实体,简化索引和检索。
  • Data Consolidation(数据整合): 将来自多个来源的导出报告合并为一个包,便于共享。

性能考虑因素

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

提示为什么有帮助
Allocate Sufficient Heap防止合并过程中出现 OutOfMemoryError
Reuse the Same Merger Instance减少对象创建开销。
Close Unused Streams及时释放操作系统文件句柄。
Run on a Dedicated Thread保持桌面应用的 UI 响应。

常见问题及解决方法

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

常见问题

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

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

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

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

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

其他资源


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