将 Word 文件以编程方式合并是构建面向文档的应用程序时的常见需求,尤其是在生成报告或整合合同的场景中。GroupDocs.Merger Cloud SDK for Java 提供了一个简单的云端库,能够在不处理底层文件操作的情况下合并 DOCX 文件。在本指南中,您将学习如何在 Java 中合并多个 Word 文档,查看完整的代码示例,探索等效的 cURL 调用,并了解所需的设置。完成后,您即可将文档合并功能集成到自己的 Java 项目中。

完整的 Java 示例:合并多个 Word 文档

此示例演示了如何在 Java 中使用 Merger API 合并多个 Word 文档。

import com.groupdocs.merger.cloud.client.ApiClient;
import com.groupdocs.merger.cloud.client.ApiException;
import com.groupdocs.merger.cloud.api.MergerApi;
import com.groupdocs.merger.cloud.model.FileInfo;
import com.groupdocs.merger.cloud.model.MergeOptions;
import java.util.ArrayList;
import java.util.List;

public class CombineWordDocuments {
    public static void main(String[] args) {
        // Initialize the API client with your credentials
        ApiClient apiClient = new ApiClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
        MergerApi mergerApi = new MergerApi(apiClient);

try {
            // List of Word documents to combine
            List<FileInfo> sourceFiles = new ArrayList<>();
            sourceFiles.add(new FileInfo().setFilePath("input1.docx"));
            sourceFiles.add(new FileInfo().setFilePath("input2.docx"));
            sourceFiles.add(new FileInfo().setFilePath("input3.docx"));

// Configure merge options
            MergeOptions mergeOptions = new MergeOptions();
            mergeOptions.setOutputPath("merged_output.docx");
            mergeOptions.setFileInfos(sourceFiles);

// Execute the merge operation
            FileInfo result = mergerApi.merge(mergeOptions);

System.out.println("Merge completed successfully. Output file: " + result.getFilePath());
        } catch (ApiException e) {
            System.err.println("An error occurred while merging documents: " + e.getMessage());
        }
    }
}

注意: 此代码示例演示了核心功能。在将其用于项目之前,请确保更新所有文件路径和配置值以匹配实际环境,验证已正确安装所有必需的依赖项,并在开发环境中彻底测试。如果遇到任何问题,请参阅官方文档或联系支持团队获取帮助。

使用 cURL 通过 REST API 合并 Word 文件

如果您更喜欢纯 REST 方法,可以使用 cURL 调用执行相同的合并操作。下面的步骤展示了如何获取访问令牌、上传源文件、请求合并以及下载结果。

进行身份验证并获取访问令牌:

curl -X POST "https://api.groupdocs.cloud/v2.0/auth/token" \
     -H "Content-Type: application/json" \
     -d '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET"}'

将每个 DOCX 文件上传到您的云存储(将 YOUR_ACCESS_TOKEN 替换为上一步获取的令牌):

curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/input1.docx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document" \
     --data-binary @input1.docx

input2.docxinput3.docdocx 重复上传命令。

创建合并请求:

curl -X POST "https://api.groupdocs.cloud/v2.0/merger/merge" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "outputPath":"merged_output.docx",
           "fileInfos":[
               {"filePath":"input1.docx"},
               {"filePath":"input2.docx"},
               {"filePath":"input3.docx"}
           ]
         }'

下载合并后的文档:

curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/merged_output.docx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o merged_output.docx

有关请求参数的更多详细信息,请参阅官方 API 文档

了解在 Java 中合并 Word 文档的过程

以下是对前面展示的代码的逐步解析。

  1. Create an ApiClient - new ApiClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET") 建立与 GroupDocs 云服务的连接。
    ApiClient apiClient = new ApiClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
    
  2. Instantiate MergerApi - new MergerApi(apiClient) 提供对合并相关端点的访问。
    MergerApi mergerApi = new MergerApi(apiClient);
    
  3. Prepare source file list - 每个 FileInfo 对象指向云端存储的 DOCX 文件。该列表会传递给 MergeOptions
    List<FileInfo> sourceFiles = new ArrayList<>();
    sourceFiles.add(new FileInfo().setFilePath("input1.docx"));
    
  4. Configure MergeOptions - 设置所需的输出路径并附加源文件列表。
    MergeOptions mergeOptions = new MergeOptions();
    mergeOptions.setOutputPath("merged_output.docx");
    mergeOptions.setFileInfos(sourceFiles);
    
  5. Execute merge - mergerApi.merge(mergeOptions) 发送请求并返回合并后文档的 FileInfo
    FileInfo result = mergerApi.merge(mergeOptions);
    

有关可用属性的完整列表,请参阅 API 参考

GroupDocs.Merger Cloud SDK 的先决条件和设置

在运行代码之前,请将 Maven 依赖添加到项目中,并确保您拥有有效的 GroupDocs 帐户。

将 SDK 添加到您的 pom.xml 中:

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

下载页面下载最新的 JAR 包和源代码。
您还需要 Java 8 或更高版本以及用于云调用的互联网访问。
创建一个 GroupDocs 账户,获取您的 Client IDClient Secret,并妥善保管。

结论

使用 GroupDocs.Merger Cloud SDK for Java 以编程方式合并 DOCX 文件现在变得简单直观。示例代码和 cURL 片段展示了两种灵活的方式在 Java 中合并多个 Word 文档,无论您更喜欢使用本地库还是直接进行 REST 调用。请记得配置凭据,必要时通过流式处理来处理大文件,并使用具有代表性的文档测试合并操作。对于生产环境部署,您需要购买许可证;定价详情可在产品页面查看,您也可以从 临时许可证页面 请求临时许可证进行评估。

常见问题

  • 如何在 Java 中合并多个 Word 文档而无需编写自定义文件‑处理代码?
    使用 GroupDocs.Merger Cloud SDK for Java。该 SDK 抽象了所有低层操作,并允许您通过少量 API 调用合并 DOCX 文件。

  • 是否可以合并存储在不同云文件夹中的文档?
    是的。请在 FileInfo 对象中提供完整的云文件路径,合并操作将在合并之前从各自的位置获取每个文件。

  • 如果合并因 ApiException 失败,我该怎么办?
    检查异常消息以获取详细信息,例如缺少文件或权限问题。确保文件路径正确,并且您的账户对存储具有读/写访问权限。请查阅官方文档了解错误代码。

  • 我是否需要为每个环境(开发、预发布、生产)单独购买许可证?
    单个许可证覆盖所有环境,但您必须遵守许可证协议中定义的使用限制。对于测试,您可以使用上面链接的临时许可证。

阅读更多