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:
- Word dosyalarını karşılaştırın ve farklılıkları gösterin.
- Akışları kullanarak Word dosyalarını karşılaştırın.
- Word dosyasında tanımlanan değişiklikleri kabul edin veya reddedin.
- Metin dosyalarını karşılaştırın ve farklılıkları vurgulayın.
- Java kullanarak PDF dosyalarını karşılaştırın.
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.
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 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.
Ayrıca bakınız
- Metin Dosyalarını Karşılaştırmak İçin C# Diff Kitaplığı
- C#’ta İki Dosyayı veya Daha Fazlasını Karşılaştırın
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.