Les documents de traitement de texte sont le moyen le plus courant de rédiger des contrats, des accords, des documents et de nombreux autres documents officiels. Si vous avez besoin de comparer et de fusionner deux documents Word, tout comme l’option de suivi des modifications de Microsoft Word, nous pouvons le faire par programmation dans nos applications .NET. Dans cet article, nous expliquerons comment comparer deux documents Word et mettre en évidence les différences identifiées à l’aide de C#. De plus, nous verrons comment comparer des documents protégés par mot de passe, accepter et rejeter les modifications et comparer plus de deux documents avec des exemples C#.

Comparez des documents Word pour trouver des différences à l'aide de l'API .NET

Les sujets suivants sont abordés ici :

API .NET pour comparer des documents Word

GroupDocs.Comparison fournit une API .NET qui permet de comparer puis de fusionner divers documents de plusieurs formats de fichiers au sein de l’application .NET. J’utiliserai son API .NET, c’est-à-dire GroupDocs.Comparison pour .NET pour comparer des documents Word.

Vous pouvez télécharger les DLL ou le programme d’installation MSI à partir de la section des téléchargements ou installer l’API dans votre application .NET via NuGet.

PM> Install-Package GroupDocs.Comparison

Comparer des documents Word à l’aide de C

Si vous avez deux versions d’un document, vous pouvez comparer les documents pour trouver leurs différences (ajouts, suppressions) et créer un nouveau document qui montre toutes les modifications. Voici les étapes pour comparer deux documents Word et mettre en évidence les différences.

  • Chargez le premier document Word en utilisant la classe Comparer.
  • Ajoutez le deuxième fichier à Comparer en utilisant la méthode Add().
  • Comparez le résumé des modifications en appelant simplement la méthode Compare().

Le code C# suivant montre comment comparer des documents Word et obtenir les modifications dans le document résultant.

/*
 * Comparez deux documents Word et mettez en surbrillance les modifications à l'aide de C #
 */
using (Comparer comparer = new Comparer("path/document.docx"))
{
    comparer.Add("path/document-ver2.docx");
    comparer.Compare("path/compared-result.docx");
}

Accepter ou rejeter les modifications identifiées des documents Word à l’aide de C#

Semblable à l’option de suivi des modifications de MS Word, vous pouvez accepter ou rejeter chaque modification identifiée. Voici les étapes pour comparer, puis accepter ou rejeter les modifications identifiées dans les documents Word.

  • Chargez le document source et ajoutez le(s) document(s) Word cible(s) à l’aide de la classe Comparer.
  • Effectuez la comparaison des documents chargés à l’aide de la méthode Comparer ().
  • Obtenez les modifications identifiées à l’aide de la méthode GetChanges().
  • Vous pouvez maintenant parcourir les modifications et définir ComparisonAction de chaque modification.
    • Pour chaque modification, vous pouvez sélectionner Accepter ou Refuser.
  • Lorsque vous avez terminé avec les modifications, appelez la méthode ApplyChanges() pour obtenir le document résultant ayant les modifications appliquées.

Le code source C# suivant compare deux documents Word, puis accepte une modification identifiée, puis en rejette une autre.

/*
 * Accepter et rejeter les modifications identifiées en comparant des documents Word à l'aide de C#
 */
using (Comparer comparer = new Comparer("path/document-1.docx"))
{
    comparer.Add("path/document-2.docx");
    comparer.Compare();
    ChangeInfo[] changes = comparer.GetChanges();
    
    // Rejeter le premier changement identifié et il ne sera pas ajouté au document de résultat
    changes[0].ComparisonAction = ComparisonAction.Reject;
    comparer.ApplyChanges("path/rejected-change-result.docx", new ApplyChangeOptions { Changes = changes, SaveOriginalState = true });

    changes = comparer.GetChanges();
    changes[0].ComparisonAction = ComparisonAction.Accept;
    comparer.ApplyChanges("path/accepted-change-result.docx", new ApplyChangeOptions { Changes = changes });
}

Comparer plus de deux documents à l’aide de C

De même, plus de deux documents peuvent être comparés en une seule fois. Voici les étapes pour comparer plusieurs documents Word pour les différences et mettre en évidence les modifications identifiées.

  • Chargez le premier document Word en utilisant la classe Comparer.
  • Continuez à ajouter les autres documents à Comparer en utilisant la méthode Add().
  • Appelez la méthode Compare() pour obtenir les modifications et le résumé des modifications.

Le code C# suivant montre comment comparer plus de deux documents Word et obtenir les modifications dans le document résultant.

/*
 * Comparer plusieurs documents Word à l'aide de C #
 */
using (Comparer comparer = new Comparer("path/document-1.docx"))
{
    comparer.Add("path/document-2.docx");
    comparer.Add("path/document-3.docx");
    comparer.Add("path/document-4.docx");

    comparer.Compare("path/compare-result.docx");
}

Comparer des documents Word protégés par mot de passe à l’aide de C#

Si vos documents sont protégés par un mot de passe, fournissez simplement leur mot de passe lors du chargement des documents. Les étapes suivantes montrent comment comparer le contenu de documents protégés par mot de passe à l’aide de C#.

  • Préparez les options de chargement des documents source et cible en fournissant le mot de passe.
  • Chargez le document source à l’aide de la classe Comparer.
  • Ajoutez le document cible à Comparer en utilisant les options de chargement préparées.
  • Obtenez le résumé des différences en appelant la méthode Compare().

L’exemple de code C# suivant compare deux fichiers Word protégés par mot de passe et génère le document résultant qui met en évidence les différences.

/*
 * Comparer des documents Word protégés par mot de passe à l'aide de C#
 */
using (Comparer comparer = new Comparer("path/protected-document-1.docx", new LoadOptions(){ Password = "SourceFilePassword" }))
{
    comparer.Add("path/protected-document-2.docx", new LoadOptions() { Password = "TargetFilePassword" });
    comparer.Compare("path/compared-protected-docs-result.docx");
}

Obtenez une licence API gratuite

Vous pouvez obtenir une licence temporaire gratuite pour utiliser l’API sans les limitations d’évaluation.

Conclusion

Pour conclure, nous avons appris à comparer deux ou plusieurs documents Word à l’aide de C#. De plus, après avoir mis en évidence les différences, nous avons appris à accepter et à rejeter par programmation les changements identifiés. En fin de compte, nous avons également discuté de la manière de comparer les documents Word protégés par mot de passe dans les applications .NET.

Il existe de nombreuses autres personnalisations pour contrôler les résultats de la comparaison, comme définir la sensibilité de la comparaison, afficher uniquement la page de résumé, ignorer les ** lacunes **, et bien plus encore. En savoir plus sur GroupDocs.Comparison pour .NET. Consultez sa documentation pour commencer à créer vos propres applications de comparaison de documents pour divers formats de documents pris en charge. Pour toute question, contactez-nous via le forum.

Voir également