Po prostudování tohoto článku budeme moci porovnávat textové soubory, soubory Word, soubory PDF a další dokumenty v aplikacích založených na Java. Pomocí této funkce můžeme porovnávat faktury, smlouvy, prezentace, návrhy AutoCADu, ceníky nebo programové soubory. Budeme mít také výsadu upozornit na identifikované změny a mít možnost buď přijmout nebo odmítnout jakoukoli změnu. Můžeme dokonce vytvořit náš vlastní nástroj pro porovnávání dokumentů podobný tomu, který spustila GroupDocs, pomocí rozhraní API pro porovnávání dokumentů pro Java.

Níže si projdete následující témata:

Java Document Comparison API

Předpokladem je, že můžete získat GroupDocs.Comparison for Java ze sekce ke stažení. V případě aplikací založených na maven můžete také do souboru pom.xml přidat následující:

Úložiště a závislosti

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

Porovnejte soubory aplikace Word a ukažte rozdíly pomocí Javy

Níže uvedené kroky vám ukáží porovnání libovolných dvou dokumentů aplikace Word v několika řádcích kódu Java. V důsledku toho získáte výsledný dokument, který bude zvýraznit identifikované změny.

  • Inicializujte objekt Comparer s cestou ke zdrojovému dokumentu.
  • Přidejte druhý dokument k porovnání pomocí metody add.
  • Voláním metody compare získáte výsledek porovnání. Metoda porovnání bere jako parametr název výstupního dokumentu.
// 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();
}

Zde zobrazujem výsledný dokument aplikace Word vygenerovaný výše uvedeným kódem a obsahuje zvýrazněné rozdíly porovnávaných dvou dokumentů aplikace Word. Smazaný obsah bude označen ČERVENOU barvou, přidaný obsah se zobrazí modře, avšak zelená barva zobrazuje upravený obsah.

word-file-text-comparison-and-show-dirffer

Porovnejte soubory Word pro text pomocí Stream

Podobně můžete dokument předat jako proud do třídy Comparer, aby byl porovnán s druhým dokumentem. Zde je kód Java, který vám poskytne jasnou představu:

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

Přijměte nebo odmítněte porovnané změny v souboru Word pomocí Java

Po úspěšném zvýraznění zjištěných rozdílů máte možnost jakoukoli změnu buď přijmout, nebo odmítnout. Jen pro ukázku, změny přijímám a odmítám alternativně. Každou změnu můžete zobrazit jednu po druhé s podobným kódem a učinit rozhodnutí o přijetí/odmítnutí každé změny podle vašeho požadavku.

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

Porovnejte textové soubory a ukažte rozdíly pomocí Java

Pomocí třídy Comparer můžeme také porovnávat libovolný textový soubor. Níže je podobný kód pro porovnání dvou textových souborů v Java. Kroky jsou naprosto stejné jako při porovnávání jakýchkoli jiných dvou dokumentů:

  • Začněte předáním textového souboru třídě Comparer.
  • Přidejte druhý soubor pomocí metody add.
  • Zavolejte metodu porovnat.
// 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();
}

Zde je výstupní dokument, který ukazuje výsledek porovnání porovnání dvou textových souborů pomocí výše uvedeného kódu.

Porovnejte textové soubory pomocí Javy

Porovnejte soubory PDF pro rozdíl v textu pomocí Java

Soubory PDF můžeme porovnat pomocí stejného výše uvedeného kódu a pouze změnou přípon souborů na „.pdf“. Jen pro zmínku, kód níže porovnává dva soubory PDF a ukazuje rozdíly v 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"));

Níže je uveden výsledek po porovnání souborů PDF.

Porovnání textu souboru PDF

Viz také

Mnoho dalších příkladů s otevřeným zdrojovým kódem je veřejně dostupných na GitHub Repository. Příklady si můžete stáhnout a rychle spustit pomocí průvodce začínáme. V případě jakéhokoli dotazu se podívejte do dokumentace nebo nás kdykoli kontaktujte na fóru.