Nadat we dit artikel hebben doorgenomen, kunnen we tekstbestanden, Word-bestanden, PDF-bestanden en andere documenten in op Java gebaseerde toepassingen vergelijken. Door deze functie te gebruiken, kunnen we facturen, contracten, presentaties, AutoCAD-ontwerpen, prijslijsten of programmeerbestanden vergelijken. We hebben ook het voorrecht om de geïdentificeerde wijzigingen te markeren en hebben de mogelijkheid om elke wijziging te accepteren of te weigeren. We kunnen zelfs onze eigen documentvergelijkingstool bouwen, vergelijkbaar met degene die door GroupDocs is gelanceerd, met behulp van de documentvergelijkings-API voor Java.

Hieronder doorloop je de volgende onderwerpen:

API voor Java-documentvergelijking

Als eerste vereiste kunt u GroupDocs.Comparison for Java verkrijgen via de sectie downloads. U kunt ook gewoon het volgende toevoegen aan uw pom.xml in het geval van maven-gebaseerde applicaties:

Opslagplaats en afhankelijkheden

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

Vergelijk Word-bestanden en laat verschillen zien met Java

De onderstaande stappen laten u zien hoe u twee willekeurige Word-documenten kunt vergelijken in slechts een paar regels Java-code. Als resultaat krijgt u het resulterende document waarin de geïdentificeerde wijzigingen worden gemarkeerd.

  • Initialiseer het Comparer-object met het brondocumentpad.
  • Voeg het tweede document toe om te vergelijken met de methode add.
  • Roep de methode compare aan om het resultaat van de vergelijking te krijgen. De vergelijkingsmethode neemt de naam van het uitvoerdocument 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 geef ik het resulterende Word-document weer dat is gegenereerd door de bovenstaande code, en het bevat de gemarkeerde verschillen van de vergeleken twee Word-documenten. De verwijderde inhoud wordt ROOD gemarkeerd, toegevoegde inhoud wordt blauw weergegeven, maar groen toont de gewijzigde inhoud.

woord-bestand-tekst-vergelijking-en-show-dirffer

Vergelijk Word-bestanden voor tekst met Stream

U kunt het document op dezelfde manier als een stroom doorgeven aan de klasse Comparer om het te laten vergelijken met het tweede document. Hier is de Java-code om u een duidelijk idee te geven:

// 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();
}

Accepteer of verwerp de vergeleken wijzigingen in het Word-bestand met behulp van Java

Nadat u de geïdentificeerde verschillen met succes hebt gemarkeerd, heeft u de mogelijkheid om elke wijziging te accepteren of te weigeren. Om een voorbeeld te geven: ik accepteer en verwerp de wijzigingen afwisselend. U kunt elke wijziging één voor één weergeven met dezelfde code en uw beslissingen nemen om elke wijziging te accepteren/verwerpen volgens uw vereisten.

// 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();
}

Vergelijk tekstbestanden en toon verschillen met Java

Met behulp van de klasse Comparer kunnen we ook elk tekstbestand vergelijken. Hieronder staat de vergelijkbare code voor het vergelijken van twee tekstbestanden in Java. De stappen zijn precies hetzelfde als bij het vergelijken van twee andere documenten:

  • Begin met het doorgeven van het tekstbestand aan de klasse Comparer.
  • Voeg het tweede bestand toe met behulp van de methode add.
  • Roep de methode vergelijken aan.
// 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 is het uitvoerdocument dat het vergelijkingsresultaat toont van het matchen van twee tekstbestanden met behulp van de bovenstaande code.

Vergelijk tekstbestanden met Java

Vergelijk PDF-bestanden voor tekstverschillen met behulp van Java

We kunnen de PDF-bestanden vergelijken met dezelfde bovenstaande code en door de bestandsextensies te wijzigen in “.pdf”. Om maar te zwijgen, de onderstaande code vergelijkt twee pdf-bestanden en toont verschillen 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"));

Hieronder vindt u het resultaat na het vergelijken van de PDF-bestanden.

PDF-bestand tekstvergelijking

Zie ook

Veel andere open-sourcevoorbeelden zijn openbaar beschikbaar op GitHub Repository. U kunt de voorbeelden downloaden en snel uitvoeren met behulp van de gids aan de slag. Raadpleeg bij vragen de documentatie of neem contact met ons op via het forum.