Многим разработчикам необходимо объединять несколько документов Word в Node.JS для создания консолидированных отчетов или пакетов. GroupDocs.Merger Cloud SDK for Node.js предоставляет мощный API, который обрабатывает слияние Word‑документов на стороне сервера без сложного кода работы с файлами. В этом руководстве вы увидите полную реализацию, эквивалентные вызовы cURL, шаги установки и рекомендации по лучшим практикам, чтобы быстро объединить ваши документы.

Объединение нескольких документов Word в Node.JS — полный пример кода

Этот пример демонстрирует, как объединить три файла DOCX в один документ, используя GroupDocs.Merger Cloud SDK for Node.js.

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.docx, combined_output.docx, и т.д.), чтобы они соответствовали фактическим расположениям, проверьте, что все необходимые зависимости правильно установлены, и тщательно протестируйте в вашей среде разработки. Если возникнут какие‑либо проблемы, обратитесь к официальной документации или свяжитесь с службой поддержки для получения помощи.

Объединение Word-документов через REST API с помощью cURL

Если вы предпочитаете чистый 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.

Как работает объединение нескольких документов Word в Node.JS

SDK абстрагирует процесс слияния в несколько логических шагов:

  1. Создание конфигурации - new GroupDocsMergerCloud.Configuration(clientId, clientSecret) создает контекст аутентификации. См. справочник класса в Справочник API.
const config = new GroupDocsMergerCloud.Configuration(clientId, clientSecret);
  1. Экземпляр API - new GroupDocsMergerCloud.MergeApi(config) предоставляет доступ к операциям слияния.

    const mergeApi = new GroupDocsMergerCloud.MergeApi(config);
    
  2. Document Entries - Каждый исходный файл оборачивается в DocumentEntry, который содержит FileInfo с путем к файлу.

const documentEntries = inputFiles.map(path => {
    return new GroupDocsMergerCloud.Models.DocumentEntry({
        fileInfo: new GroupDocsMergerCloud.Models.FileInfo({ filePath: path })
    });
});
  1. Merge Request - MergeDocumentsRequest объединяет записи и желаемый путь вывода.
const mergeRequest = new GroupDocsMergerCloud.Models.MergeDocumentsRequest({
    documents: documentEntries,
    outputPath: outputFile
});
  1. Выполнение - mergeApi.mergeDocuments(mergeRequest) отправляет запрос в облачный сервис. Промис разрешается объектом результата, содержащим путь к выходному файлу.
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 Version - Убедитесь, что вы используете Node.js 12 или новее.

  2. Настройка учетных данных - Замените YOUR_CLIENT_ID и YOUR_CLIENT_SECRET в коде значениями из вашей учетной записи GroupDocs Cloud.

  3. Создать папку проекта - Поместите исходные файлы DOCX в подпапку documents/, как показано в примере.

После выполнения этих шагов вы готовы запустить скрипт слияния или вызвать REST‑конечные точки.

Заключение

Объединение нескольких документов Word в Node.JS становится простым с помощью GroupDocs.Merger Cloud SDK for Node.js. SDK обрабатывает загрузку файлов, логику объединения и генерацию вывода, позволяя сосредоточиться на бизнес‑логике, а не на низкоуровневой работе с файлами. Не забудьте обеспечить наличие правильной лицензии для использования в продакшене; вы можете начать с временной лицензии и перейти на полную подписку по мере роста ваших потребностей. Начните объединять документы уже сегодня и оптимизируйте свои рабочие процессы с документами.

Часто задаваемые вопросы

  • Как объединить несколько документов Word в Node.JS с помощью SDK?
    Используйте класс MergeApi для создания MergeDocumentsRequest, в котором перечисляются каждый DOCX файл как DocumentEntry. SDK объединяет их в указанном порядке и сохраняет результат по заданному пути вывода.

  • Можно ли объединять PDF-файлы с помощью того же SDK?
    Да, Merger SDK поддерживает PDF, DOCX, ODT, и несколько других форматов. Просто измените расширения файлов в массиве inputFiles, и SDK выполнит конвертацию автоматически. Смотрите официальную документацию для получения подробностей о форматах.

  • Каковы ограничения на количество документов, которые я могу объединить в одном запросе?
    Облачный сервис накладывает ограничение по размеру, а не по количеству. Пока суммарный размер находится в пределах квоты вашего аккаунта, вы можете объединять десятки файлов. Для очень больших пакетов рекомендуется сначала загрузить файлы в хранилище GroupDocs и ссылаться на них по ID.

  • Нужно ли беспокоиться о лицензировании для разработки и продакшна?
    Для разработки и тестирования можно использовать временную лицензию, полученную со страницы страница временной лицензии. Для развертывания в продакшн необходимо приобрести полную лицензию, чтобы разблокировать неограниченное количество слияний и приоритетную поддержку.

Read More