Comparer des fichiers Word de manière programmatique est une exigence fréquente pour les services back‑end qui doivent détecter les modifications, générer des rapports de révision ou appliquer des politiques de documents. GroupDocs.Comparison Cloud SDK for Node.js fournit une API puissante qui simplifie cette tâche pour les applications Node.js. Dans ce guide, vous apprendrez comment configurer le SDK, exécuter une comparaison complète de deux fichiers DOCX, utiliser les commandes cURL équivalentes, comprendre chaque partie de l’implémentation et suivre les recommandations de bonnes pratiques pour que votre solution reste fiable et sécurisée.

Exemple complet de code : comparer des documents Word dans Node.JS

L’exemple suivant montre un flux de travail complet de bout en bout pour comparer deux documents Word à l’aide du GroupDocs.Comparison Cloud SDK pour Node.js.

const GroupDocsComparisonCloud = require("@groupdocs/comparison-cloud");
const fs = require("fs");
const path = require("path");

// ==== Authentication =========================================================
const clientId = "YOUR_CLIENT_ID";
const clientSecret = "YOUR_CLIENT_SECRET";

const config = new GroupDocsComparisonCloud.Configuration(clientId, clientSecret);
const compareApi = new GroupDocsComparisonCloud.CompareApi(config);
const storageApi = new GroupDocsComparisonCloud.StorageApi(config);

// ==== File definitions =======================================================
const sourceFileName = "document1.docx";
const targetFileName = "document2.docx";
const resultFileName = "comparison_result.docx";

const sourceFilePath = path.resolve(__dirname, sourceFileName);
const targetFilePath = path.resolve(__dirname, targetFileName);

// ==== Main async function ====================================================
(async () => {
    try {
        // ---- Upload source document -----------------------------------------
        const sourceData = fs.readFileSync(sourceFilePath);
        const uploadSourceReq = new GroupDocsComparisonCloud.UploadFileRequest({
            path: sourceFileName,
            file: sourceData
        });
        await storageApi.uploadFile(uploadSourceReq);

// ---- Upload target document -----------------------------------------
        const targetData = fs.readFileSync(targetFilePath);
        const uploadTargetReq = new GroupDocsComparisonCloud.UploadFileRequest({
            path: targetFileName,
            file: targetData
        });
        await storageApi.uploadFile(uploadTargetReq);

// ---- Prepare comparison options --------------------------------------
        const compareOptions = new GroupDocsComparisonCloud.CompareOptions({
            sourceFile: new GroupDocsComparisonCloud.FileInfo({ filePath: sourceFileName }),
            targetFiles: [new GroupDocsComparisonCloud.FileInfo({ filePath: targetFileName })],
            outputPath: resultFileName,
            // optional: you can set settings like generateSummaryPage, showDeletedContent, etc.
        });

const compareRequest = new GroupDocsComparisonCloud.CompareDocumentRequest({
            compareOptions: compareOptions
        });

// ---- Execute comparison -----------------------------------------------
        const compareResult = await compareApi.compareDocument(compareRequest);
        console.log("Comparison completed. Result stored at:", compareResult.path);

// ---- (Optional) Clean up uploaded files --------------------------------
        await storageApi.deleteFile(new GroupDocsComparisonCloud.DeleteFileRequest({ path: sourceFileName }));
        await storageApi.deleteFile(new GroupDocsComparisonCloud.DeleteFileRequest({ path: targetFileName }));
        // Note: result file remains in storage; you can download it if needed.
    } catch (error) {
        console.error("Error during comparison:", error);
    }
})();

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.

Effectuer la comparaison de documents avec cURL et l’API REST

Si vous préférez une approche indépendante du langage, vous pouvez obtenir le même résultat avec des requêtes HTTP simples. Voici les commandes cURL essentielles.

  1. Authentifier et obtenir un jeton d’accès
    Remplacez YOUR_CLIENT_ID et YOUR_CLIENT_SECRET par vos informations d’identification.
curl -X POST "https://api.groupdocs.cloud/v2.0/oauth2/token" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
  1. Téléverser le fichier DOCX source
curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/document1.docx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/octet-stream" \
     --data-binary "@path/to/document1.docx"
  1. Téléverser le fichier DOCX cible
curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/document2.docx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/octet-stream" \
     --data-binary "@path/to/document2.docx"
  1. Exécuter l’opération de comparaison
curl -X POST "https://api.groupdocs.cloud/v2.0/comparison/compare" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "sourceFile": { "filePath": "document1.docx" },
           "targetFiles": [{ "filePath": "document2.docx" }],
           "outputPath": "comparison_result.docx"
         }'
  1. Télécharger le fichier de comparaison résultant
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/comparison_result.docx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o comparison_result.docx

Pour plus de détails sur les charges utiles de requête et les formats de réponse, consultez la documentation officielle de l’API.

Comprendre la comparaison de documents Word en code Node.JS

Voici une analyse étape par étape de l’exemple complet :

  1. Importer le SDK et les modules Node.js
const GroupDocsComparisonCloud = require("@groupdocs/comparison-cloud");
const fs = require("fs");
const path = require("path");

L’espace de noms GroupDocsComparisonCloud donne accès à toutes les classes API.

  1. Créer une configuration avec les informations d’identification du client
const config = new GroupDocsComparisonCloud.Configuration(clientId, clientSecret);

Cet objet authentifie chaque appel API ultérieur.

  1. Instancier CompareApi et StorageApi
const compareApi = new GroupDocsComparisonCloud.CompareApi(config);
const storageApi = new GroupDocsComparisonCloud.StorageApi(config);

CompareApi gère la comparaison, tandis que StorageApi gère les téléchargements et suppressions de fichiers. Voir la référence de l’API pour les détails des méthodes.

  1. Téléverser les fichiers DOCX source et cible
const uploadSourceReq = new GroupDocsComparisonCloud.UploadFileRequest({
    path: sourceFileName,
    file: sourceData
});
await storageApi.uploadFile(uploadSourceReq);

Le même schéma est répété pour le fichier cible.

  1. Configurer CompareOptions et exécuter la comparaison
const compareOptions = new GroupDocsComparisonCloud.CompareOptions({
    sourceFile: new GroupDocsComparisonCloud.FileInfo({ filePath: sourceFileName }),
    targetFiles: [new GroupDocsComparisonCloud.FileInfo({ filePath: targetFileName })],
    outputPath: resultFileName,
});
const compareRequest = new GroupDocsComparisonCloud.CompareDocumentRequest({
    compareOptions: compareOptions
});
const compareResult = await compareApi.compareDocument(compareRequest);

CompareOptions vous permet d’ajuster finement l’opération (par ex., générer une page de résumé). L’objet résultat contient le chemin vers le document de comparaison généré.

  1. Nettoyer les fichiers temporaires (optionnel)
await storageApi.deleteFile(new GroupDocsComparisonCloud.DeleteFileRequest({ path: sourceFileName }));
await storageApi.deleteFile(new GroupDocsComparisonCloud.DeleteFileRequest({ path: targetFileName }));

Supprimer les originaux téléchargés permet de garder le stockage propre.

Pré-requis et configuration pour GroupDocs.Comparison

  1. Version de Node.js - Assurez‑vous d’utiliser Node 14 ou une version plus récente.
  2. Obtenir les informations d’identification du client - Inscrivez‑vous sur le portail GroupDocs Cloud pour obtenir clientId et clientSecret.
  3. Installer le SDK
npm install groupdocs-comparison-cloud
  1. (Facultatif) Télécharger le projet d’exemple - Vous pouvez cloner le référentiel depuis la page GitHub.
  2. Configurer votre environnement - Définissez les informations d’identification comme variables d’environnement ou remplacez les espaces réservés dans le code.

Pour une liste complète des binaires téléchargeables, consultez la page de téléchargement.

Meilleures pratiques pour une comparaison efficace de documents Word

  • Valider les fichiers d’entrée - Vérifiez la taille et le format du fichier avant le téléchargement afin d’éviter des appels API inutiles.
  • Réutiliser les sessions de stockage - Téléchargez les fichiers une fois et réutilisez leurs chemins pour plusieurs comparaisons afin de réduire la latence.
  • Activer la page de résumé uniquement si nécessaire - La génération d’une page de résumé ajoute du temps de traitement ; désactivez‑la pour des vérifications de différences simples.
  • Gérer les gros documents de manière asynchrone - Pour les fichiers DOCX supérieurs à 10 Mo, envisagez d’interroger le statut du travail au lieu d’attendre de manière synchrone.
  • Sécuriser les informations d’identification - Stockez clientId et clientSecret dans des variables d’environnement ou un gestionnaire de secrets ; ne les codez jamais en dur.

Conclusion

La comparaison de documents Word dans Node.JS devient simple avec le GroupDocs.Comparison Cloud SDK for Node.js. En suivant les étapes d’installation, en utilisant l’exemple de code fourni, et éventuellement en exploitant l’API REST avec cURL, vous pouvez intégrer une comparaison de documents robuste dans n’importe quel service backend. N’oubliez pas de sécuriser vos identifiants, de nettoyer les fichiers temporaires et d’ajuster les options de comparaison pour les performances. Pour les déploiements en production, vous aurez besoin d’une version sous licence ; les détails de tarification sont disponibles sur la page du produit, et vous pouvez obtenir une licence temporaire d’évaluation depuis la temporary license page. Commencez à expérimenter dès aujourd’hui et apportez des capacités fiables de différenciation de documents à vos applications Node.js.

FAQ

  • Comment comparer des documents Word dans Node.JS sans écrire de code ?
    Vous pouvez utiliser la même opération via des appels REST. Les exemples cURL dans cet article montrent la séquence exacte : authentifier, télécharger les fichiers, appeler le point de terminaison de comparaison et télécharger le résultat.

  • Quels formats de fichiers sont pris en charge pour la comparaison ?
    Le SDK prend en charge DOCX, DOC, ODT, RTF, et TXT parmi d’autres. Tous les noms de formats ne sont pas sensibles à la casse, mais ils sont documentés en majuscules (par ex., DOCX) dans la référence API.

  • Puis-je comparer plus de deux documents à la fois ?
    Oui. Le tableau targetFiles dans CompareOptions peut contenir plusieurs objets FileInfo, ce qui vous permet de comparer un fichier source à plusieurs cibles dans une seule requête.

  • Existe-t-il un moyen de personnaliser le style visuel du résultat de la comparaison ?
    Le SDK propose des paramètres tels que showDeletedContent, showInsertedContent et generateSummaryPage. Modifiez ces propriétés dans CompareOptions pour contrôler la façon dont les modifications sont mises en évidence. Consultez la documentation officielle pour la liste complète des options.

Lire la suite