许多开发人员需要在 Node.JS 中合并多个 Word 文档,以生成综合报告或包。 GroupDocs.Merger Cloud SDK for Node.js 提供了强大的 API,能够在服务器端处理 Word 合并,无需复杂的文件处理代码。 在本指南中,您将看到完整的实现示例、等效的 cURL 调用、安装步骤以及最佳实践技巧,帮助您快速合并文档。

在 Node.JS 中合并多个 Word 文档 - 完整代码示例

本示例演示如何使用 GroupDocs.Merger Cloud SDK for Node.js 将三个 DOCX 文件合并为一个文档。

const GroupDocsMergerCloud = require("@groupdocs/merger-cloud");

// ==== Configuration ====
// Replace with your actual credentials
const clientId = "YOUR_CLIENT_ID";
const clientSecret = "YOUR_CLIENT_SECRET";

const config = new GroupDocsMergerCloud.Configuration(clientId, clientSecret);
const mergeApi = new GroupDocsMergerCloud.MergeApi(config);

// ==== Input / Output paths ====
const inputFiles = [
    "documents/input1.docx",
    "documents/input2.docx",
    "documents/input3.docx"
];
const outputFile = "documents/combined_output.docx";

// ==== Build request ====
const documentEntries = inputFiles.map(path => {
    return new GroupDocsMergerCloud.Models.DocumentEntry({
        fileInfo: new GroupDocsMergerCloud.Models.FileInfo({
            filePath: path
        })
    });
});

const mergeRequest = new GroupDocsMergerCloud.Models.MergeDocumentsRequest({
    documents: documentEntries,
    outputPath: outputFile
});

// ==== Execute merge ====
(async () => {
    try {
        const result = await mergeApi.mergeDocuments(mergeRequest);
        console.log(`Merge completed successfully. Output file: ${result.path}`);
    } catch (error) {
        console.error("Error during merging:", error);
    }
})();

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

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

如果您更喜欢纯 REST 方法,可以使用 cURL 命令执行相同的合并操作。下面是一个简洁的工作流,它会进行身份验证、上传源文件、运行合并并下载结果。

1. 身份验证并获取访问令牌

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

响应中包含一个在后续调用中使用的 access_token

2. 上传源文件

对每个要合并的 DOCX 文件重复此步骤。

curl -X POST "https://api.groupdocs.cloud/v2.0/storage/file/upload?path=documents/input1.docx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/octet-stream" \
--data-binary "@path/to/input1.docx"

3. 执行合并操作

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

API 返回合并文件的路径。

4. 下载合并文档

curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/download?path=documents/combined_output.docx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o combined_output.docx

有关请求负载和选项的更多详细信息,请参阅官方 API 文档

如何在 Node.JS 中合并多个 Word 文档

SDK 将合并过程抽象为几个逻辑步骤:

  1. 配置创建 - new GroupDocsMergerCloud.Configuration(clientId, clientSecret) 构建身份验证上下文。请参阅 API Reference 中的类参考。
const config = new GroupDocsMergerCloud.Configuration(clientId, clientSecret);
  1. API 实例 - new GroupDocsMergerCloud.MergeApi(config) 提供对合并操作的访问。
const mergeApi = new GroupDocsMergerCloud.MergeApi(config);
  1. 文档条目 - 每个源文件都被包装在一个 DocumentEntry 中,该条目包含一个带有文件路径的 FileInfo
const documentEntries = inputFiles.map(path => {
    return new GroupDocsMergerCloud.Models.DocumentEntry({
        fileInfo: new GroupDocsMergerCloud.Models.FileInfo({ filePath: path })
    });
});
  1. 合并请求 - MergeDocumentsRequest 将条目和所需的输出路径捆绑在一起。

    const mergeRequest = new GroupDocsMergerCloud.Models.MergeDocumentsRequest({
        documents: documentEntries,
        outputPath: outputFile
    });
    
  2. 执行 - mergeApi.mergeDocuments(mergeRequest) 将请求发送到云服务。Promise 解析后返回一个包含输出文件路径的结果对象。

const result = await mergeApi.mergeDocuments(mergeRequest);
console.log(`Merge completed successfully. Output file: ${result.path}`);

这些步骤共同使您能够高效地合并多个 Word 文档,而无需处理低级文件流。

为 GroupDocs.Merger 准备环境

  1. 安装 SDK
npm install groupdocs-merger-cloud

该软件包可从官方下载页面获取。

  1. Node.js 版本 - 确保您正在运行 Node.js 12 或更高版本。

  2. 配置凭据 - 将代码中的 YOUR_CLIENT_IDYOUR_CLIENT_SECRET 替换为您 GroupDocs Cloud 帐户中的值。

  3. Create a Project Folder - 将源 DOCX 文件放置在 documents/ 子文件夹中,如示例所示。

完成这些步骤后,您可以运行合并脚本或调用 REST 端点。

结论

在 Node.JS 中合并多个 Word 文档变得简单,只需使用 GroupDocs.Merger Cloud SDK for Node.js。该 SDK 处理文件上传、合并逻辑和输出生成,让您可以专注于业务逻辑,而无需处理低层文件操作。请确保为生产环境获取合适的许可证;您可以先使用 临时许可证 然后随着需求增长升级为完整订阅。立即开始合并,简化文档工作流。

FAQs

  • 如何在 Node.JS 中使用 SDK 合并多个 Word 文档?
    使用 MergeApi 类创建一个 MergeDocumentsRequest,其中列出每个 DOCX 文件作为 DocumentEntry。SDK 按提供的顺序合并它们,并将结果保存到指定的输出路径。

  • 是否可以使用相同的 SDK 合并 PDF?
    是的,Merger SDK 支持 PDF、DOCX、ODT 和其他多种格式。只需在 inputFiles 数组中更改文件扩展名,SDK 将自动处理转换。有关格式详情,请参阅官方文档

  • 单次请求中可以合并的文档数量有限制吗?
    云服务施加的是大小限制,而不是严格的文档计数。只要合并后的总大小在您账户配额范围内,您可以合并数十个文件。对于非常大的批次,建议先将文件上传到 GroupDocs 存储,然后通过 ID 引用它们。

  • 我需要担心开发与生产环境的授权问题吗?
    开发和测试可以使用从临时授权页面获取的临时授权。对于生产部署,请购买完整授权以解锁无限合并和优先支持。

阅读更多