comparer des documents Word en Java

La comparaison de documents MS Word est effectuée pour connaître la différence entre deux versions d’un document. MS Word fournit une option intégrée pour comparer le contenu de deux documents. Cependant, avec l’augmentation du nombre de documents, il devient difficile d’effectuer manuellement la comparaison de documents. Afin d’automatiser ce processus, cet article explique comment comparer deux documents MS Word (DOC/DOCX) à l’aide de Java.

API Java pour comparer des documents MS Word

Aspose.Words for Java est une puissante API de manipulation de documents qui vous permet de créer, lire, modifier et convertir des documents MS Word. De plus, il vous permet de comparer deux documents Word tout en considérant ou en ignorant la mise en forme du contenu. Vous pouvez télécharger l’API ou l’installer à l’aide des configurations Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-words</artifactId>
    <version>20.9</version>
    <classifier>jdk17</classifier>
</dependency>

Comparer des documents MS Word à l’aide de Java

Voici les étapes pour effectuer une simple comparaison de documents Word à l’aide de l’API Aspose.Words for Java.

L’exemple de code suivant montre comment comparer deux documents MS Word à l’aide de Java.

Document docA = new Document(dataDir + "DocumentA.doc");
Document docB = new Document(dataDir + "DocumentB.doc");
docA.compare(docB, "user", new Date()); // docA now contains changes as revisions

Comparaison de documents Java Word - Ignorer le formatage

Il peut arriver que les documents aient un formatage différent appliqué au contenu. Dans de tels cas, vous préféreriez comparer le texte uniquement en ignorant la mise en forme, les en-têtes/pieds de page, les notes de bas de page, les tableaux, les commentaires, etc. Voici les étapes pour ignorer la mise en forme du document lors de la comparaison de deux documents MS Word.

L’exemple de code suivant montre comment comparer des documents MS Word en ignorant la mise en forme du contenu à l’aide de Java.

// Pour des exemples complets et des fichiers de données, rendez-vous sur https://github.com/aspose-words/Aspose.Words-for-Java
String dataDir = Utils.getDataDir(CompareTwoWordDocumentswithCompareOptions.class);

com.aspose.words.Document docA = new com.aspose.words.Document(dataDir + "DocumentA.doc");
com.aspose.words.Document docB = new com.aspose.words.Document(dataDir + "DocumentB.doc");

com.aspose.words.CompareOptions options = new com.aspose.words.CompareOptions();
options.setIgnoreFormatting(true);
options.setIgnoreHeadersAndFooters(true);
options.setIgnoreCaseChanges(true);
options.setIgnoreTables(true);
options.setIgnoreFields(true);
options.setIgnoreComments(true);
options.setIgnoreTextboxes(true);
options.setIgnoreFootnotes(true);

// DocA contient désormais les modifications sous forme de révisions.
docA.compare(docB, "user", new Date(), options);
if (docA.getRevisions().getCount() == 0)
    System.out.println("Documents are equal");
else
    System.out.println("Documents are not equal");

Définir le document Word cible pour les différences de comparaison

Aspose.Words for Java vous permet également de spécifier le document Word source lors de la comparaison. Pour cela, vous pouvez utiliser la propriété CompareOptions.setTarget() qui se rapporte à l’option “Afficher les modifications dans” de MS Word. L’exemple de code suivant montre comment spécifier le document cible dans la comparaison.

Document docA = new Document(dataDir + "TestFile.doc");
Document docB = new Document(dataDir + "TestFile - Copy.doc");

CompareOptions options = new CompareOptions();
options.setIgnoreFormatting(true);
// Se rapporte à l'option "Afficher les modifications dans" de Microsoft Word dans la boîte de dialogue "Comparer les documents".
options.setTarget(ComparisonTargetType.NEW);

docA.compare(docB, "user", new Date(), options);

Définir la granularité pour comparer les fichiers Word en Java

Vous pouvez également définir la granularité des modifications lors de la comparaison de deux documents MS Word. Cela peut être fait en utilisant la propriété CompareOptions.setGranularity(). Voici les options de granularité possibles.

L’exemple de code suivant montre comment définir la granularité lors de la comparaison de documents MS Word à l’aide de Java.

DocumentBuilder builderA = new DocumentBuilder(new Document());
DocumentBuilder builderB = new DocumentBuilder(new Document());

builderA.writeln("This is A simple word");
builderB.writeln("This is B simple words");

CompareOptions co = new CompareOptions();
co.setGranularity(Granularity.CHAR_LEVEL);

builderA.getDocument().compare(builderB.getDocument(), "author", new Date(), co);

Conclusion

Dans cet article, vous avez vu comment comparer deux documents MS Word dans divers scénarios utilisant Java. Vous pouvez en savoir plus sur Aspose.Words for Java en utilisant la documentation.

Essayer gratuitement

Aspose propose une licence temporaire pour que vous puissiez essayer ses API gratuitement. Vous pouvez obtenir le vôtre pour évaluer Aspose.Words for Java.

Voir également