Comparer des documents Word et mettre en évidence les différences à l'aide de Java

Vous pouvez facilement comparer deux documents Word ou plus et mettre en évidence les différences par programme. Vous devrez peut-être comparer plusieurs versions du même fichier Word ou des fichiers différents pour les différences et les similitudes dans votre application Java. Dans cet article, vous apprendrez comment comparer deux documents Word ou plus et mettre en évidence les différences à l’aide de Java.

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

API Java pour comparer des documents Word

J’utiliserai GroupDocs.Comparison for Java API pour comparer les documents DOCX. Il compare pour détecter les changements de contenu pour les mots, les paragraphes et les caractères tout en fournissant un document de comparaison qui 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 télécharger le JAR de l’API ou simplement ajouter la configuration pom.xml suivante dans votre application Java basée sur Maven pour essayer les exemples de code mentionnés ci-dessous.

<repository>
  <id>GroupDocsJavaAPI</id>
  <name>API Java GroupDocs</name>
  <url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
  <groupId>com.groupdocs</groupId>
  <artifactId>groupdocs-comparison</artifactId>
  <version>21.6</version>
</dependency>

Comparer des documents Word à l’aide de Java

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

  1. Créez une instance de Comparer class
  2. Fournissez le chemin du fichier DOCX source au constructeur
  3. Ajouter fichier DOCX cible à la comparaison
  4. Appelez la méthode Compare() avec le chemin du fichier de sortie

L’exemple de code suivant montre comment comparer des documents Word et met en évidence les différences à l’aide de Java.

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

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

// comparer et enregistrer comparer les résultats
comparer.compare("C:\\Files\\result.docx");
Documents Word source et cible

Documents source et cible

Comparer deux documents Word à l'aide de Java

Comparer deux documents Word à l’aide de Java

Le document résultant comprend également une page de synthèse à la fin du document. Il affiche le résumé de toutes les modifications.

La classe Comparer est la classe principale qui contrôle le processus de comparaison des documents. La méthode Compare() de cette classe compare les documents source et cible. Cette méthode enregistre les résultats dans le chemin d’accès au fichier fourni en tant que paramètre d’entrée. 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("target2.docx");
comparer.Add("target3.docx");

Obtenir le texte des modifications à l’aide de Java

Vous pouvez obtenir le texte des modifications par programme en suivant les étapes simples ci-dessous:

  1. Créez une instance de Comparer class
  2. Fournissez le chemin du fichier DOCX source au constructeur
  3. Ajouter fichier DOCX cible à la comparaison
  4. Appelez la méthode Compare()
  5. Appelez la méthode getChanges() et obtenez les détails des modifications
  6. Afficher les modifications

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

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

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

// comparer
final Path resultPath = comparerr.comparer();

// obtenir des modifications
ChangeInfo[] changes = comparerr.getChanges();
System.out.println("Count of changes: " + changes.length);

for (ChangeInfo change: changes) {
    System.out.printf("Change Type: %d, Text: %s%n", change.getType(), change.getText());
}
Count of changes: 10
Change Type: 2, Text: 
Change Type: 2, Text:  Company  HYPERLINK "http://www.aspose.com/" Aspose Pty Ltd Division GroupDocs 
Change Type: 2, Text: 
Change Type: 2, Text: Cool 
Change Type: 3, Text: test 
Change Type: 2, Text:  
Change Type: 2, Text: signatures
Change Type: 2, Text: Our 
Change Type: 2, Text: char[
Change Type: 2, Text: 255] 

Vous pouvez obtenir une liste des modifications entre les fichiers source et cible en appelant la méthode getChanges() de la classe Comparer. Il renvoie une liste d’objets ChangeInfo. La classe ChangeInfo fournit des méthodes pour obtenir des détails sur les modifications telles que getText() pour obtenir le texte d’une modification spécifique.

Comparer les signets dans les documents Word

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

  1. Créez une instance de Comparer class
  2. Fournissez le chemin du fichier DOCX source au constructeur
  3. Ajouter fichier DOCX cible à la 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 l’objet CompareOptions

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

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

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

// définir les options de comparaison
CompareOptions compareOptions = new CompareOptions();
compareOptions.setCompareBookmarks(true);

// comparer et enregistrer comparer les résultats
comparer.compare("C:\\Files\\result.docx", compareOptions);
Comparer les signets dans les documents Word à l'aide de Java

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

Vous pouvez améliorer votre processus de comparaison en appliquant diverses options de comparaison. À cette fin, la classe CompareOptions vous permet de définir différentes options de comparaison en fournissant diverses méthodes. La méthode setCompareBookmarks() vous permet de comparer les signets disponibles dans les documents source et cible.

Obtenez une licence gratuite

Vous pouvez essayer l’API sans limites 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 Java. Vous avez également appris comment obtenir le texte des modifications en surbrillance. De plus, vous avez appris comment comparer des signets dans des documents Word par programmation. Vous pouvez en savoir plus sur l’API GroupDocs.Comparison pour Java en utilisant la documentation. En cas d’ambiguïté, n’hésitez pas à nous contacter sur le forum.

Voir également