La combinaison de fichiers Word de manière programmatique est une exigence fréquente lors de la création d’applications centrées sur les documents, notamment pour générer des rapports ou consolider des contrats. GroupDocs.Merger Cloud SDK for Java fournit une bibliothèque simple, basée sur le cloud, qui vous permet de fusionner des fichiers DOCX sans gérer la manipulation de fichiers de bas niveau. Dans ce guide, vous apprendrez comment combiner plusieurs documents Word en Java, consulter un exemple de code complet, explorer les appels cURL équivalents et comprendre la configuration requise. À la fin, vous serez prêt à intégrer la fusion de documents dans vos propres projets Java.

Exemple complet fonctionnel pour combiner plusieurs documents Word en Java

Cet exemple montre comment combiner plusieurs documents Word en Java en utilisant l’API Merger.

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

Remarque : Cet exemple de code démontre la fonctionnalité principale. Avant de l’utiliser dans votre projet, assurez‑vous de mettre à jour tous les chemins de fichiers et les valeurs de configuration pour qu’ils correspondent à votre environnement réel, vérifiez que toutes les dépendances requises sont correctement installées, et testez soigneusement dans votre environnement de développement. Si vous rencontrez des problèmes, veuillez consulter la documentation officielle ou contacter l’équipe de support pour obtenir de l’aide.

Fusionner des fichiers Word via l’API REST avec cURL

Si vous préférez une approche purement REST, la même opération de fusion peut être effectuée avec des appels cURL. Les étapes ci-dessous montrent comment obtenir un jeton d’accès, télécharger les fichiers source, demander la fusion et télécharger le résultat.

Authentifiez‑vous et obtenez un jeton d’accès:

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"}'

Téléchargez chaque fichier DOCX dans votre stockage cloud (remplacez YOUR_ACCESS_TOKEN par le jeton de l’étape précédente) :

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

Répétez la commande de téléchargement pour input2.docx et input3.docx.

Créer la demande de fusion :

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"}
           ]
         }'

Télécharger le document fusionné:

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

Pour plus de détails sur les paramètres de la requête, consultez la documentation officielle de l’API.

Comprendre le processus de combinaison de documents Word en Java

Voici une explication détaillée, étape par étape, du code présenté précédemment.

  1. Créer un ApiClient - new ApiClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET") établit une connexion au service cloud GroupDocs.

    ApiClient apiClient = new ApiClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
    
  2. Instancier MergerApi - new MergerApi(apiClient) donne accès aux points de terminaison liés à la fusion.

    MergerApi mergerApi = new MergerApi(apiClient);
    
  3. Préparer la liste des fichiers source - Chaque objet FileInfo pointe vers un fichier DOCX stocké dans le cloud. La liste est transmise à MergeOptions.

    List<FileInfo> sourceFiles = new ArrayList<>();
    sourceFiles.add(new FileInfo().setFilePath("input1.docx"));
    
  4. Configurer MergeOptions - Définissez le chemin de sortie souhaité et joignez la liste des fichiers source.

    MergeOptions mergeOptions = new MergeOptions();
    mergeOptions.setOutputPath("merged_output.docx");
    mergeOptions.setFileInfos(sourceFiles);
    
  5. Exécuter la fusion - mergerApi.merge(mergeOptions) envoie la requête et renvoie un FileInfo pour le document fusionné.

    FileInfo result = mergerApi.merge(mergeOptions);
    

Pour une liste complète des propriétés disponibles, consultez la référence API.

Pré-requis et configuration pour GroupDocs.Merger Cloud SDK

Avant de pouvoir exécuter le code, ajoutez la dépendance Maven à votre projet et assurez‑vous de disposer d’un compte GroupDocs valide.

Ajoutez le SDK à votre pom.xml :

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

Téléchargez les derniers JAR et le code source depuis la page de téléchargement.
Vous aurez également besoin de Java 8 ou supérieur et d’un accès Internet pour les appels cloud.
Créez un compte GroupDocs, obtenez votre Client ID et Client Secret, et conservez‑les en sécurité.

Conclusion

La fusion de fichiers DOCX par programmation est désormais simple avec le GroupDocs.Merger Cloud SDK for Java. Le code d’exemple et les extraits cURL illustrent deux méthodes flexibles pour combiner plusieurs documents Word en Java, que vous préfériez une bibliothèque native ou des appels REST directs. N’oubliez pas de configurer vos identifiants, de gérer les gros fichiers en les diffusant en continu si nécessaire, et de tester l’opération de fusion avec des documents représentatifs. Pour les déploiements en production, vous aurez besoin d’une licence payante ; les détails de tarification sont disponibles sur la page produit et vous pouvez demander une licence temporaire pour l’évaluation depuis la page de licence temporaire.

FAQ

  • Comment puis‑je combiner plusieurs documents Word en Java sans écrire de code de gestion de fichiers personnalisé ?
    Utilisez le GroupDocs.Merger Cloud SDK for Java. Le SDK abstrait toutes les opérations de bas niveau et vous permet de fusionner des fichiers DOCX avec quelques appels d’API.

  • Est-il possible de fusionner des documents stockés dans différents dossiers cloud ?
    Oui. Fournissez les chemins complets des fichiers cloud dans les objets FileInfo, et l’opération de fusion récupérera chaque fichier depuis son emplacement avant de les combiner.

  • Que faire si la fusion échoue avec une ApiException ?
    Vérifiez le message d’exception pour obtenir des détails tels que des fichiers manquants ou des problèmes d’autorisations. Assurez-vous que les chemins de fichiers sont corrects et que votre compte dispose d’un accès en lecture/écriture au stockage. Consultez la documentation officielle pour les codes d’erreur.

  • Dois-je disposer d’une licence distincte pour chaque environnement (développement, préproduction, production) ?
    Une licence unique couvre tous les environnements, mais vous devez respecter les limites d’utilisation définies dans votre contrat de licence. Pour les tests, vous pouvez utiliser la licence temporaire mentionnée ci-dessus.

Read More