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

Полный рабочий пример объединения нескольких документов Word в Java

Этот пример демонстрирует, как объединить несколько документов Word в Java с помощью Merger API.

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());
        }
    }
}

Примечание: Этот пример кода демонстрирует базовую функциональность. Прежде чем использовать его в вашем проекте, убедитесь, что вы обновили все пути к файлам и значения конфигурации, чтобы они соответствовали вашей реальной среде, проверьте, что все необходимые зависимости правильно установлены, и тщательно протестируйте в вашей среде разработки. Если возникнут проблемы, обратитесь к официальной документации или свяжитесь с командой поддержки для получения помощи.

Объединение файлов Word через REST API с использованием cURL

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

Создайте запрос на слияние:

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.

Понимание процесса объединения документов Word в Java

Ниже приведён пошаговый разбор кода, показанного ранее.

  1. Создать ApiClientnew ApiClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET") устанавливает соединение с облачным сервисом GroupDocs.

    ApiClient apiClient = new ApiClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
    
  2. Создать экземпляр MergerApinew MergerApi(apiClient) дает доступ к эндпоинтам, связанным с объединением.

    MergerApi mergerApi = new MergerApi(apiClient);
    
  3. Подготовить список исходных файлов – Каждый объект FileInfo указывает на DOCX‑файл, хранящийся в облаке. Список передаётся в MergeOptions.

    List<FileInfo> sourceFiles = new ArrayList<>();
    sourceFiles.add(new FileInfo().setFilePath("input1.docx"));
    
  4. Настроить MergeOptions – Установите желаемый путь вывода и прикрепите список исходных файлов.

    MergeOptions mergeOptions = new MergeOptions();
    mergeOptions.setOutputPath("merged_output.docx");
    mergeOptions.setFileInfos(sourceFiles);
    
  5. Выполнить объединение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 ID и Client Secret и храните их в безопасности.

Заключение

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

FAQs

  • Как объединить несколько документов Word в Java без написания собственного кода для работы с файлами?
    Используйте GroupDocs.Merger Cloud SDK for Java. SDK абстрагирует все низкоуровневые операции и позволяет объединять файлы DOCX с помощью нескольких вызовов API.

  • Можно ли объединять документы, хранящиеся в разных облачных папках?
    Да. Укажите полные пути к файлам в облаке в объектах FileInfo, и операция слияния получит каждый файл из его местоположения перед объединением.

  • Что делать, если слияние завершилось неудачей с ApiException?
    Проверьте сообщение исключения для получения деталей, таких как отсутствие файлов или проблемы с разрешениями. Убедитесь, что пути к файлам правильные и что ваша учетная запись имеет права чтения/записи к хранилищу. Обратитесь к официальной документации для получения кодов ошибок.

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

Читать дальше