Bu makaleyi inceledikten sonra Java tabanlı uygulamalardaki metin dosyalarını, Word dosyalarını, PDF dosyalarını ve diğer belgeleri karşılaştırabileceğiz. Bu özelliği kullanarak faturaları, sözleşmeleri, sunumları, AutoCAD tasarımlarını, fiyat listelerini veya programlama dosyalarını karşılaştırabiliriz. Ayrıca, belirlenen değişiklikleri vurgulama ayrıcalığına sahip olacağız ve herhangi bir değişikliği kabul etme veya reddetme seçeneğine sahip olacağız. Java için belge karşılaştırma API’sini kullanarak GroupDocs tarafından başlatılana benzer kendi belge karşılaştırma aracımızı bile oluşturabiliriz.

Aşağıda, aşağıdaki konuları inceleyeceksiniz:

Java Doküman Karşılaştırma API’sı

Ön koşul olarak, indirilenler bölümünden GroupDocs.Comparison for Java edinebilirsiniz. Ayrıca, maven tabanlı uygulamalar olması durumunda pom.xml’nize aşağıdakileri ekleyebilirsiniz:

Depo ve Bağımlılıklar

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

Java Kullanarak Word Dosyalarını Karşılaştırın ve Farkları Gösterin

Aşağıdaki adımlar, yalnızca birkaç Java kodu satırında herhangi iki Word belgesini karşılaştırmanızı gösterecektir. Sonuç olarak, tanımlanan değişiklikleri vurgulayacak sonuç belgesini alacaksınız.

  • Comparer nesnesini kaynak belge yolu ile başlatın.
  • add yöntemini kullanarak karşılaştırılacak ikinci belgeyi ekleyin.
  • Karşılaştırmanın sonucunu almak için compare yöntemini çağırın. Compare yöntemi, çıktı belgesinin adını parametre olarak alır.
// 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();
}

Burada, yukarıdaki kod tarafından oluşturulan sonuç Word belgesini görüntülüyorum ve karşılaştırılan iki Word belgesinin vurgulanan farklarını içeriyor. Silinen içerik KIRMIZI renkle işaretlenir, eklenen içerik Mavi renkle gösterilir, ancak Yeşil, değiştirilen içeriği gösterir.

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

Akışı Kullanarak Metin İçin Word Dosyalarını Karşılaştırın

Benzer şekilde, belgeyi ikinci belgeyle karşılaştırmak için Comparer sınıfına bir akış olarak iletebilirsiniz. İşte size net bir fikir vermek için Java kodu:

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

Java kullanarak Word Dosyasında Karşılaştırılan Değişiklikleri Kabul Etme veya Reddetme

Tanımlanan farklılıkları başarılı bir şekilde vurguladıktan sonra, herhangi bir değişikliği kabul etme veya reddetme seçeneğiniz vardır. Sadece bir örnek olarak göstermek için, değişiklikleri dönüşümlü olarak kabul ediyor ve reddediyorum. Her bir değişikliği benzer kod ile tek tek görüntüleyebilir ve her değişikliği ihtiyacınıza göre kabul/red kararlarınızı alabilirsiniz.

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

Metin Dosyalarını Karşılaştırın ve Java Kullanarak Farkları Gösterin

Comparer sınıfını kullanarak herhangi bir metin dosyasını da karşılaştırabiliriz. Java’da iki metin dosyasını karşılaştırmak için benzer kod aşağıdadır. Adımlar, diğer iki belgeyi karşılaştırmakla tamamen aynıdır:

  • Metin dosyasını Comparer sınıfına geçirmekle başlayın.
  • add yöntemini kullanarak ikinci dosyayı ekleyin.
  • karşılaştır yöntemini çağırın.
// 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();
}

İşte yukarıdaki kodu kullanarak iki metin dosyasını eşleştirmenin karşılaştırma sonucunu gösteren çıktı belgesi.

Java kullanarak Metin Dosyalarını Karşılaştırın

Java kullanarak Metin Farkı için PDF Dosyalarını Karşılaştırın

Yukarıdaki aynı kodu kullanarak ve sadece dosya uzantılarını “.pdf” olarak değiştirerek PDF dosyalarını karşılaştırabiliriz. Sadece bahsetmek gerekirse, aşağıdaki kod iki pdf dosyasını karşılaştırır ve Java’daki farklılıkları gösterir.

// 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"));

PDF dosyalarını karşılaştırdıktan sonraki sonuç aşağıdadır.

PDF Dosyası Metin Karşılaştırması

Ayrıca bakınız

Diğer birçok açık kaynak örneği, GitHub Repository‘de genel kullanıma açıktır. Başlarken kılavuzunu kullanarak örnekleri indirebilir ve hızlı bir şekilde çalıştırabilirsiniz. Herhangi bir sorunuz olması durumunda belgelere bakın veya istediğiniz zaman forumdan bize ulaşın.