Nachdem wir diesen Artikel durchgearbeitet haben, können wir Textdateien, Word-Dateien, PDF-Dateien und andere Dokumente in Java-basierten Anwendungen vergleichen. Mit dieser Funktion können wir Rechnungen, Verträge, Präsentationen, AutoCAD-Entwürfe, Preislisten oder Programmierdateien vergleichen. Wir haben auch das Privileg, die identifizierten Änderungen hervorzuheben, und haben die Möglichkeit, Änderungen entweder zu akzeptieren oder abzulehnen. Wir können sogar unser eigenes Dokumentenvergleichstool erstellen, ähnlich dem von GroupDocs gestarteten, indem wir die Dokumentvergleichs-API für Java verwenden.
Im Folgenden werden Sie die folgenden Themen durchgehen:
- Word-Dateien vergleichen und Unterschiede anzeigen.
- Word-Dateien mit Streams vergleichen.
- Akzeptieren oder ablehnen Sie die identifizierten Änderungen in der Word-Datei.
- Textdateien vergleichen und Unterschiede hervorheben.
- PDF-Dateien mit Java vergleichen.
API zum Vergleich von Java-Dokumenten
Als Voraussetzung erhalten Sie möglicherweise GroupDocs.Comparison for Java aus dem Abschnitt downloads. Außerdem können Sie bei Maven-basierten Anwendungen einfach Folgendes in Ihre pom.xml einfügen:
Repository & Abhängigkeiten
<repository>
<id>GroupDocsJavaAPI</id>
<name>GroupDocs Java API</name>
<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-comparison</artifactId>
<version>20.4</version>
</dependency>
Vergleichen Sie Word-Dateien und zeigen Sie Unterschiede mit Java
Die folgenden Schritte zeigen Ihnen, wie Sie zwei beliebige Word-Dokumente in nur wenigen Zeilen Java-Code vergleichen können. Als Ergebnis erhalten Sie das resultierende Dokument, das die identifizierten Änderungen hervorhebt.
- Initialisieren Sie das Objekt Comparer mit dem Pfad des Quelldokuments.
- Fügen Sie das zweite zu vergleichende Dokument mit der Methode add hinzu.
- Rufen Sie die Methode compare auf, um das Ergebnis des Vergleichs zu erhalten. Die Vergleichsmethode nimmt den Namen des Ausgabedokuments als Parameter.
// Compare two Word files from the provided location on disk
Comparer comparer = new Comparer("source.docx");
try {
comparer.add("target.docx");
comparer.compare("comparison.docx");
}
finally {
comparer.dispose();
}
Hier zeige ich das resultierende Word-Dokument, das durch den obigen Code generiert wurde, und es enthält die hervorgehobenen Unterschiede der verglichenen zwei Word-Dokumente. Die gelöschten Inhalte werden ROT markiert, hinzugefügte Inhalte werden in Blau angezeigt, Grün zeigt jedoch die geänderten Inhalte.
Vergleichen Sie Word-Dateien für Text mit Stream
Sie können das Dokument auf ähnliche Weise als Stream an die Comparer-Klasse übergeben, um es mit dem zweiten Dokument zu vergleichen. Hier ist der Java-Code, um Ihnen eine klare Vorstellung zu geben:
// Compare two Word file using Stream
Comparer comparer = new Comparer(new FileInputStream("source.docx"));
try {
comparer.add(new FileInputStream("target.docx"));
comparer.compare(new FileOutputStream("result.docx"));
}
finally {
comparer.dispose();
}
Akzeptieren oder lehnen Sie die verglichenen Änderungen in der Word-Datei mit Java ab
Nachdem Sie die identifizierten Unterschiede erfolgreich hervorgehoben haben, haben Sie die Möglichkeit, Änderungen entweder zu akzeptieren oder abzulehnen. Nur als Beispiel, ich akzeptiere und lehne die Änderungen abwechselnd ab. Sie können jede Änderung einzeln mit dem ähnlichen Code anzeigen und Ihre Entscheidung treffen, jede Änderung gemäß Ihren Anforderungen zu akzeptieren/abzulehnen.
// Accept or Reject the identified changes of Word document in Java
Comparer comparer = new Comparer(source);
try {
comparer.add(target);
comparer.compare();
ChangeInfo\[\] changes = comparer.getChanges();
System.out.println("changes.length: " + changes.length + ".");
// Accept or Reject the changes
for (int n = 0; n < changes.length; n++) {
if (n % 2 == 0) {
changes\[n\].setComparisonAction(ComparisonAction.ACCEPT);
}
else {
changes\[n\].setComparisonAction(ComparisonAction.REJECT);
}
}
// Apply your decisions to get the resultant document.
comparer.applyChanges(outputFileName, new SaveOptions(), new ApplyChangeOptions(changes));
}
finally {
comparer.dispose();
}
Vergleichen Sie Textdateien und zeigen Sie Unterschiede mit Java
Mit der Klasse Comparer können wir auch beliebige Textdateien vergleichen. Unten ist der ähnliche Code zum Vergleichen von zwei Textdateien in Java. Die Schritte sind genau die gleichen wie beim Vergleichen von zwei anderen Dokumenten:
- Beginnen Sie damit, die Textdatei an die Klasse Comparer zu übergeben.
- Fügen Sie die zweite Datei mit der Methode add hinzu.
- Rufen Sie die Methode compare auf.
// Compare two text files to identify and highlight changes.
Comparer comparer = new Comparer("source.txt");
try {
comparer.add("target.txt");
comparer.compare("comparison.txt");
}
finally {
comparer.dispose();
}
Hier ist das Ausgabedokument, das das Vergleichsergebnis des Abgleichs zweier Textdateien mit dem obigen Code zeigt.
Vergleichen Sie PDF-Dateien auf Textunterschiede mit Java
Wir können die PDF-Dateien mit demselben obigen Code vergleichen, indem wir einfach die Dateierweiterungen in „.pdf“ ändern. Nur um zu erwähnen, der folgende Code vergleicht zwei PDF-Dateien und zeigt Unterschiede in Java.
// Compare two PDF file using Stream
Comparer comparer = new Comparer(new FileInputStream("source.pdf"));
comparer.add(new FileInputStream("target.pdf"));
comparer.compare(new FileOutputStream("result.pdf"));
Unten ist das Ergebnis nach dem Vergleich der PDF-Dateien.
Siehe auch
Viele andere Open-Source-Beispiele sind öffentlich verfügbar unter GitHub Repository. Sie können die Beispiele mithilfe des Leitfadens Erste Schritte herunterladen und schnell ausführen. Sehen Sie sich bei Fragen die Dokumentation an oder erreichen Sie uns jederzeit im Forum.