Vergleichen Sie Word Dokumente in Java

Der Vergleich von MS Word Dokumenten wird durchgeführt, um den Unterschied zwischen zwei Versionen eines Dokuments zu kennen. MS Word bietet eine integrierte Option, um den Inhalt zweier Dokumente zu vergleichen. Mit der zunehmenden Anzahl von Dokumenten wird es jedoch schwierig, den Dokumentenvergleich manuell durchzuführen. Um diesen Prozess zu automatisieren, beschreibt dieser Artikel, wie Sie zwei MS Word Dokumente (DOC/DOCX) mit Java vergleichen.

Java API zum Vergleichen von MS Word Dokumenten

Aspose.Words for Java ist eine leistungsstarke API zur Dokumentenbearbeitung, mit der Sie MS Word Dokumente erstellen, lesen, ändern und konvertieren können. Darüber hinaus können Sie zwei Word Dokumente vergleichen und die Formatierung des Inhalts berücksichtigen oder ignorieren. Sie können die API herunterladen oder mithilfe von Maven konfigurationen installieren lassen.

<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>

Vergleichen Sie MS Word Dokumente mit Java

Im Folgenden finden Sie die Schritte zum Durchführen eines einfachen Vergleichs von Word Dokumenten mithilfe der Aspose.Words for Java API.

Das folgende Codebeispiel zeigt, wie zwei MS Word Dokumente mit Java verglichen werden.

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

Vergleich von Java-Word Dokumenten - Formatierung ignorieren

Es kann vorkommen, dass die Dokumente unterschiedliche Formatierungen auf den Inhalt anwenden. In solchen Fällen würden Sie es vorziehen, nur den Text zu vergleichen und dabei die Formatierung, Kopf-/Fußzeilen, Fußnoten, Tabellen, Kommentare usw. zu ignorieren. Im Folgenden finden Sie die Schritte zum Ignorieren der Formatierung des Dokuments beim Vergleichen von zwei MS Word Dokumenten.

Das folgende Codebeispiel zeigt, wie MS Word Dokumente verglichen werden, wobei die Formatierung des Inhalts mit Java ignoriert wird.

// Vollständige Beispiele und Datendateien finden Sie unter 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 enthält jetzt Änderungen als Revisionen.
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");

Ziel-Word Dokument für Vergleichsunterschiede festlegen

Aspose.Words for Java ermöglicht es Ihnen auch, das Quell-Word Dokument während des Vergleichs anzugeben. Dazu können Sie die Eigenschaft CompareOptions.setTarget() verwenden, die sich auf die Option „Änderungen anzeigen in“ von MS Word bezieht. Das folgende Codebeispiel zeigt, wie das Zieldokument im Vergleich angegeben wird.

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

CompareOptions options = new CompareOptions();
options.setIgnoreFormatting(true);
// Bezieht sich auf die Microsoft Word-Option "Änderungen anzeigen in" im Dialogfeld "Dokumente vergleichen".
options.setTarget(ComparisonTargetType.NEW);

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

Legen Sie die Granularität fest, um Word Dateien in Java zu vergleichen

Sie können auch die Granularität der Änderungen beim Vergleich zweier MS-Word Dokumente festlegen. Dies kann mit der Eigenschaft CompareOptions.setGranularity() erfolgen. Im Folgenden sind die möglichen Granularitätsoptionen aufgeführt.

Das folgende Codebeispiel zeigt, wie Sie die Granularität festlegen, wenn Sie MS Word Dokumente mit Java vergleichen.

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);

Fazit

In diesem Artikel haben Sie gesehen, wie Sie zwei MS Word Dokumente in verschiedenen Szenarien mit Java vergleichen. Weitere Informationen zu Aspose.Words for Java finden Sie in der Dokumentation.

Kostenlos testen

Aspose bietet Ihnen eine temporäre Lizenz zum kostenlosen Testen seiner APIs an. Sie können Ihre erhalten, um Aspose.Words for Java zu evaluieren.

Siehe auch