Comparez deux ou plusieurs documents Word à l'aide de C #

Comparez deux ou plusieurs documents Word à l’aide de C #

Vous pouvez facilement comparer deux ou plusieurs documents Word ou comparer plusieurs versions du même fichier Word pour les différences et les similitudes par programmation dans vos applications .NET. Dans cet article, vous apprendrez comment comparer deux documents Word ou plus et mettre en évidence les différences à l’aide de C#.

Les sujets suivants sont abordés/couverts dans cet article:

API C# pour comparer les fichiers DOCX

Pour comparer deux ou plusieurs fichiers DOCX, j’utiliserai GroupDocs.Comparison for .NET API. Il compare deux documents ou plus et découvre les changements dans le contenu des documents pour les mots, les paragraphes et les caractères. En conséquence, il produit un document de comparaison qui met en évidence les différences et répertorie un résumé des différences. Il vous permet également de détecter les changements et les différences de style de texte entre des formats de documents similaires. L’API prend en charge la comparaison de tous les formats de documents standard de l’industrie tels que PDF, HTML, Word, Excel, PowerPoint, les e-mails Outlook, les diagrammes Visio, OpenDocument, AutoCAD et les images.

Vous pouvez soit télécharger la DLL de l’API, soit l’installer à l’aide de NuGet.

Install-Package GroupDocs.Comparison

Comparez deux ou plusieurs documents Word à l’aide de C

Vous pouvez comparer deux ou plusieurs documents Word par programme en suivant les étapes simples ci-dessous:

  1. Créez une instance de Comparer class avec le chemin du fichier DOCX source
  2. Appelez la méthode Add() avec le fichier DOCX cible à ajouter à la comparaison
  3. Répétez l’étape ci-dessus pour ajouter plus de fichiers en comparaison
  4. Appelez la méthode Compare() avec le chemin du fichier de sortie

L’exemple de code suivant montre comment comparer deux documents Word ou plus et met en évidence les différences à l’aide de C#.

// initialiser le comparateur
Comparer comparer = new Comparer("C:\\Files\\source.docx");

// ajouter un fichier cible à comparer
comparer.Add("C:\\Files\\target.docx");

// comparer et enregistrer les différences
comparer.Compare("C:\\Files\\result.docx");
Fichiers DOCX source et cible

Fichiers DOCX source et cible

Comparez deux ou plusieurs documents Word à l'aide de C #

Comparez deux ou plusieurs documents Word à l’aide de C #

Le document résultant comprend également une page de résumé à la fin du document qui montre le résumé de tous les changements trouvés dans la comparaison.

La classe Comparer class est la classe principale qui vous permet de contrôler et d’exécuter le processus de comparaison. Il fournit plusieurs méthodes pour comparer deux ou plusieurs documents. La méthode Add() de cette classe ajoute un fichier au processus de comparaison. Vous pouvez facilement ajouter plusieurs fichiers à la comparaison en utilisant la méthode Add() comme indiqué ci-dessous:

comparer.Add("target1.docx");
comparer.Add("target2.docx");comparer.Add("target3.docx");

La méthode Compare() de la classe Comparer compare les documents source et cible. Cette méthode met en évidence les différences et enregistre les résultats dans le chemin d’accès au fichier fourni en tant que paramètre d’entrée.

Comparer des documents Word à l’aide de Stream en C#

Vous pouvez comparer deux ou plusieurs documents Word à l’aide de FileStream en suivant les étapes ci-dessous:

  1. Lire le fichier source dans un objet Stream
  2. Lire le fichier cible dans un autre objet Stream
  3. Créez une instance de Comparer class avec l’objet Stream source
  4. Appelez la méthode Add() avec l’objet Stream cible à ajouter à la comparaison
  5. Appelez la méthode Compare() avec le chemin du fichier de sortie

L’exemple de code suivant montre comment comparer des documents Word à l’aide de FileStream en C#.

// lire les fichiers source et cible
using (Stream sourceStream = File.OpenRead("C:\\Files\\source.docx"))
using (Stream targetStream = File.OpenRead("C:\\Files\\target.docx"))
{
    // initialize comparer
    using (Comparer comparer = new Comparer(sourceStream))
    {
        // add target filestream to compare
        comparer.Add(targetStream);

        // compare and save differences
        comparer.Compare(File.Create("C:\\Files\\result.docx"));
    }
}

Obtenir le texte des modifications à l’aide de C#

Vous pouvez obtenir le texte des modifications trouvées dans la comparaison des documents Word par programme en suivant les étapes simples indiquées ci-dessous:

  1. Créez une instance de Comparer class avec le chemin du fichier DOCX source
  2. Appelez la méthode Add() avec le fichier DOCX cible à ajouter à la comparaison
  3. Répétez l’étape ci-dessus pour ajouter plus de fichiers en comparaison
  4. Appelez la méthode Compare()
  5. Appelez la méthode GetChanges() pour obtenir les détails des modifications
  6. Afficher les changements

L’exemple de code suivant montre comment obtenir le texte des modifications à l’aide de C#.

// initialiser le comparateur
Comparer comparerr = new Comparer("C:\\Files\\source.docx");

// ajouter un fichier cible à comparerr
comparerr.Add("C:\\Files\\target.docx");

// comparer
comparerr.Compare();

// obtenir des modifications
ChangeInfo[] changes = comparerr.GetChanges();

Console.WriteLine("Count of changes: " + changes.Length);

// afficher les modifications
foreach (ChangeInfo change in changes)
{
    Console.WriteLine("Change Type: " + change.Type + ", Text: " + change.Text);
}
Count of changes: 10
Change Type: Inserted, Text:
Change Type: Inserted, Text:  Company ‼ HYPERLINK "http://www.aspose.com/" ¶Aspose Pty Ltd§ Division GroupDocs
Change Type: Inserted, Text:
Change Type: Inserted, Text: Cool
Change Type: Deleted, Text: test
Change Type: Inserted, Text:
Change Type: Inserted, Text: signatures
Change Type: Inserted, Text:
Change Type: Deleted, Text: Customers
Change Type: Deleted, Text: GroupDocs is used by companies of all sizes across the globe, from large multinational firms to small freelance businesses. They come to us because they have a need for a simple, one-stop-shop, document management solution.

Vous pouvez obtenir une liste des modifications entre les fichiers source et cible en appelant la méthode GetChanges() de la classe Comparer. Elle renvoie une liste d’objets ChangeInfo. La ChangeInfo_ _class représente des informations sur les modifications et fournit diverses propriétés pour obtenir des détails sur les modifications telles que Text, Type, etc.

Comparaison des propriétés des documents à l’aide de C#

Vous pouvez comparer les propriétés intégrées, personnalisées et les propriétés variables des documents Word par programmation en suivant les étapes ci-dessous:

  1. Créez une instance de Comparer class avec le chemin du fichier DOCX source
  2. Appelez la méthode Add() avec le fichier DOCX cible à ajouter à la comparaison
  3. Répétez l’étape ci-dessus pour ajouter plus de fichiers en comparaison
  4. Créez une instance de CompareOptions
  5. Définissez CompareVariableProperty sur true
  6. Définissez CompareDocumentProperty sur true
  7. Appelez la méthode Compare() avec le chemin du fichier de sortie et CompareOptions

L’exemple de code suivant montre comment comparer les propriétés des documents à l’aide de C#.

// initialiser le comparateur
Comparer comparerr = new Comparer("C:\\Files\\source.docx");

// ajouter un fichier cible à comparerr
comparerr.Add("C:\\Files\\target.docx");

// définir les options de comparaison
CompareOptions options = new CompareOptions();
options.CompareVariableProperty = true; // activate the comparison of variable properties
options.CompareDocumentProperty = true; // activate the comparison of built and custom properties

// comparer
comparerr.Compare("C:\\Files\\result.docx", options);
Comparaison des propriétés des documents à l'aide de C#

Comparaison des propriétés des documents à l’aide de C#

Vous pouvez améliorer votre processus de comparaison en appliquant diverses options de comparaison. À cette fin, la classe CompareOptions permet de définir diverses options de comparaison pour obtenir des résultats spécifiques. Le CompareDocumentProperty de cette classe vous permet d’activer la comparaison des propriétés intégrées et personnalisées au format Word. La CompareVariableProperty permet d’activer la comparaison des propriétés des variables au format Word.

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

Vous pouvez comparer deux ou plusieurs documents Word protégés par mot de passe par programmation en suivant les étapes ci-dessous:

  1. Créez une instance de la classe LoadOptions
  2. Indiquez le mot de passe du fichier source
  3. Créez une instance de Comparer class avec le chemin du fichier DOCX source et LoadOptions
  4. Appelez la méthode Add() avec le chemin du fichier DOCX cible et l’instance LoadOptions avec le mot de passe
  5. Répétez l’étape ci-dessus pour ajouter plus de fichiers en comparaison
  6. Appelez la méthode Compare() avec le chemin du fichier de sortie

L’exemple de code suivant montre comment comparer des documents Word protégés par mot de passe à l’aide de C#.

// définir les options de chargement pour le fichier source
LoadOptions sourceLoadOptions = new LoadOptions() { Password = "1234" };

// initialiser le comparateur
Comparer comparerr = new Comparer("C:\\Files\\source.docx", sourceLoadOptions);

// ajouter un fichier cible à comparerr
comparerr.Add("C:\\Files\\target.docx", new LoadOptions() { Password = "5678" });

// comparer
comparerr.Compare("C:\\Files\\result.docx");

La classe LoadOptions vous permet de spécifier des options supplémentaires lors du chargement d’un document. Il fournit les propriétés suivantes à spécifier:

  • FontDirectories — Liste des répertoires de polices à charger.
  • LoadText — Indique que les chaînes transmises sont du texte de comparaison, et non des chemins de fichiers (pour la comparaison de texte uniquement).
  • Mot de passe — Mot de passe du document.

Comparer les signets dans les documents Word à l’aide de C

Vous pouvez comparer par programme les signets disponibles dans les documents Word en suivant les étapes ci-dessous:

  1. Créez une instance de Comparer class avec le chemin du fichier DOCX source
  2. Appelez la méthode Add() avec le fichier DOCX cible à ajouter à la comparaison
  3. Répétez l’étape ci-dessus pour ajouter plus de fichiers en comparaison
  4. Créez une instance de CompareOptions
  5. Définissez CompareBookmarks sur vrai
  6. Appelez la méthode Compare() avec le chemin du fichier de sortie et CompareOptions

L’exemple de code suivant montre comment comparer des signets dans des documents Word à l’aide de C#.

// initialiser le comparateur
Comparer comparerr = new Comparer("C:\\Files\\source.docx");

// ajouter un fichier cible à comparerr
comparerr.Add("C:\\Files\\target.docx");

// définir les options de comparaison
CompareOptions comparerOptions = new CompareOptions();
comparerOptions.CompareBookmarks = true; // comparer bookmarks

// comparer
comparerr.Compare("C:\\Files\\result.docx", comparerOptions);
Comparer les signets dans les documents Word à l'aide de C#

Comparer les signets dans les documents Word à l’aide de C#

La propriété CompareBookmarks vous permet de comparer les signets disponibles dans les documents source et cible.

Obtenez une licence gratuite

Vous pouvez essayer l’API sans limitation d’évaluation en demandant une licence temporaire gratuite.

Conclusion

Dans cet article, vous avez appris comment comparer deux documents Word ou plus et mettre en évidence les différences à l’aide de C#. Vous avez également appris comment obtenir la liste des modifications en surbrillance. De plus, vous avez appris comment comparer des signets dans des documents Word par programmation. De plus, vous avez appris comment comparer des documents Word protégés par mot de passe à l’aide de C#. Vous pouvez en savoir plus sur l’API GroupDocs.Comparison pour .NET à l’aide de la documentation. En cas d’ambiguïté, n’hésitez pas à nous contacter sur le forum.

Voir également