Dopo aver esaminato questo articolo, saremo in grado di confrontare file di testo, file Word, file PDF e altri documenti in applicazioni basate su Java. Utilizzando questa funzione, possiamo confrontare fatture, contratti, presentazioni, progetti AutoCAD, listini prezzi o file di programmazione. Avremo anche il privilegio di evidenziare le modifiche identificate e avere la possibilità di accettare o rifiutare qualsiasi modifica. Possiamo persino creare il nostro strumento di confronto dei documenti simile a quello lanciato da GroupDocs, utilizzando l’API di confronto dei documenti per Java.

Di seguito, analizzerai i seguenti argomenti:

API di confronto dei documenti Java

Come prerequisito, puoi ottenere GroupDocs.Comparison per Java dalla sezione download. Inoltre, puoi semplicemente aggiungere quanto segue nel tuo pom.xml in caso di applicazioni basate su Maven:

Repository e dipendenze

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

Confronta i file di Word e mostra le differenze usando Java

I passaggi seguenti ti mostreranno di confrontare due documenti Word qualsiasi in poche righe di codice Java. Di conseguenza, otterrai il documento risultante che evidenzierà le modifiche identificate.

  • Inizializza l’oggetto Comparatore con il percorso del documento di origine.
  • Aggiungi il secondo documento da confrontare utilizzando il metodo add.
  • Chiama il metodo compare per ottenere il risultato del confronto. Il metodo di confronto prende il nome del documento di output come parametro.
// 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();
}

Qui sto visualizzando il documento Word risultante generato dal codice sopra e contiene le differenze evidenziate dei due documenti Word confrontati. Il contenuto eliminato verrà contrassegnato in ROSSO, il contenuto aggiunto verrà visualizzato in blu, tuttavia, il verde mostra il contenuto modificato.

Word-file-text-confronto-e-mostra-differenza

Confronta i file di Word per il testo utilizzando Stream

Allo stesso modo, puoi passare il documento come flusso alla classe Comparer per confrontarlo con il secondo documento. Ecco il codice Java per darti un’idea chiara:

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

Accetta o rifiuta le modifiche confrontate nel file di Word utilizzando Java

Dopo aver evidenziato con successo le differenze identificate, hai la possibilità di accettare o rifiutare qualsiasi modifica. Solo per mostrare come esempio, sto accettando e rifiutando le modifiche in alternativa. Puoi visualizzare ogni modifica una per una con il codice simile e prendere le tue decisioni per accettare/rifiutare ogni modifica in base alle tue esigenze.

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

Confronta i file di testo e mostra le differenze usando Java

Utilizzando la classe Comparer, possiamo anche confrontare qualsiasi file di testo. Di seguito è riportato il codice simile per confrontare due file di testo in Java. I passaggi sono esattamente gli stessi del confronto di altri due documenti:

  • Inizia passando il file di testo alla classe Comparer.
  • Aggiungi il secondo file usando il metodo add.
  • Chiama il metodo confronta.
// 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();
}

Ecco il documento di output che mostra il risultato del confronto della corrispondenza di due file di testo utilizzando il codice sopra.

Confronta i file di testo usando Java

Confronta i file PDF per la differenza di testo utilizzando Java

Possiamo confrontare i file PDF utilizzando lo stesso codice sopra e semplicemente cambiando le estensioni dei file in “.pdf”. Solo per menzionare, il codice seguente confronta due file pdf e mostra le differenze 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"));

Di seguito è riportato il risultato dopo aver confrontato i file PDF.

Confronto testo file PDF

Guarda anche

Molti altri esempi open source sono disponibili pubblicamente su GitHub Repository. Puoi scaricare ed eseguire rapidamente gli esempi utilizzando la guida Guida introduttiva. In caso di domande, consulta la documentazione o contattaci in qualsiasi momento sul forum.