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.
- MS Word Dokumentvergleichs-API für Java
- Vergleichen Sie MS Word Dokumente mit Java
- Ignorieren Sie die Formatierung im MS Word Dokumentenvergleich
- Zielbeleg für Vergleichsdifferenzen festlegen
- Legen Sie die Granularität fest, um MS Word Dokumente zu 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.
- Laden Sie die zu vergleichenden Dokumente mit der Klasse Document.
- Rufen Sie die Methode Document.compare(Document, String, Date) auf, um das Dokument mit dem als Argument übergebenen Dokument zu vergleichen.
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.
- Laden Sie die zu vergleichenden Dokumente mit der Klasse Document.
- Erstellen Sie ein Objekt der Klasse CompareOptions.
- Legen Sie CompareOptions.setIgnoreFormatting(true) fest.
- Vergleichen Sie die Dokumente mit der methode Document.compare(Document, String, Date, CompareOptions).
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.