MS Word belgelerinin karşılaştırılması, bir belgenin iki versiyonu arasındaki farkı bilmek için yapılır. MS Word, iki belgenin içeriğini karşılaştırmak için yerleşik bir seçenek sunar. Ancak artan belge sayısı ile belge karşılaştırmasını manuel olarak yapmak zorlaşmaktadır. Bu işlemi otomatikleştirmek için bu makale, Java kullanılarak iki MS Word (DOC/DOCX) belgesinin nasıl karşılaştırılacağını kapsar.
- Java için MS Word Belgesi Karşılaştırma API’sı
- Java kullanarak MS Word Belgelerini karşılaştırın
- MS Word Belgesi Karşılaştırmasında Biçimlendirmeyi Yoksay
- Karşılaştırma Farkları İçin Hedef Belge Belirleyin
- MS Word Belgelerini Karşılaştırmak İçin Ayrıntı Düzeyini Ayarlayın
MS Word Belgelerini Karşılaştırmak İçin Java API
Aspose.Words for Java, MS Word belgeleri oluşturmanıza, okumanıza, değiştirmenize ve dönüştürmenize olanak tanıyan güçlü bir belge işleme API’sidir. Ayrıca, içeriğin biçimlendirmesini göz önünde bulundurarak veya göz ardı ederek iki Word belgesini karşılaştırmanıza olanak tanır. API’yi indirebilir veya Maven yapılandırmalarını kullanarak yüklemesini sağlayabilirsiniz.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<version>20.9</version>
<classifier>jdk17</classifier>
</dependency>
Java kullanarak MS Word Belgelerini karşılaştırın
Aşağıda, Aspose.Words for Java API kullanarak basit bir Word belgesi karşılaştırması gerçekleştirme adımları yer almaktadır.
- Document sınıfını kullanarak karşılaştırılacak belgeleri yükleyin.
- Belgeyi bağımsız değişken olarak iletilen belgeyle karşılaştırmak için Document.compare(Document, String, Date) yöntemini çağırın.
Aşağıdaki kod örneği, Java kullanılarak iki MS Word belgesinin nasıl karşılaştırılacağını gösterir.
Document docA = new Document(dataDir + "DocumentA.doc");
Document docB = new Document(dataDir + "DocumentB.doc");
docA.compare(docB, "user", new Date()); // docA now contains changes as revisions
Java Word Belgesi Karşılaştırması - Biçimlendirmeyi Yoksay
Belgelerin içeriğe farklı biçimlendirme uygulandığı durumlar olabilir. Bu gibi durumlarda, metni yalnızca biçimlendirmeyi, üst bilgileri/alt bilgileri, dipnotları, tabloları, yorumları vb.
- Belge sınıfını kullanarak karşılaştırılacak belgeleri yükleyin.
- CompareOptions sınıfından bir nesne oluşturun.
- CompareOptions.setIgnoreFormatting(true) öğesini ayarlayın.
- Document.compare(Document, String, Date, CompareOptions) yöntemini kullanarak belgeleri karşılaştırın.
Aşağıdaki kod örneği, Java kullanarak içeriğin biçimlendirmesini göz ardı ederek MS Word belgelerinin nasıl karşılaştırılacağını gösterir.
// Eksiksiz örnekler ve veri dosyaları için lütfen https://github.com/aspose-words/Aspose.Words-for-Java adresine gidin.
String dataDir = Utils.getDataDir(CompareTwoWordDocumentswithCompareOptions.class);
com.aspose.words.Document docA = new com.aspose.words.Document(dataDir + "DocumentA.doc");
com.aspose.words.Document docB = new com.aspose.words.Document(dataDir + "DocumentB.doc");
com.aspose.words.CompareOptions options = new com.aspose.words.CompareOptions();
options.setIgnoreFormatting(true);
options.setIgnoreHeadersAndFooters(true);
options.setIgnoreCaseChanges(true);
options.setIgnoreTables(true);
options.setIgnoreFields(true);
options.setIgnoreComments(true);
options.setIgnoreTextboxes(true);
options.setIgnoreFootnotes(true);
// DocA artık değişiklikleri revizyon olarak içeriyor.
docA.compare(docB, "user", new Date(), options);
if (docA.getRevisions().getCount() == 0)
System.out.println("Documents are equal");
else
System.out.println("Documents are not equal");
Karşılaştırma Farkları İçin Hedef Word Belgesi Belirleyin
Aspose.Words for Java, karşılaştırma sırasında kaynak Word belgesini belirtmenize de izin verir. Bunun için MS Word’ün “Değişiklikleri göster” seçeneği ile ilgili olan CompareOptions.setTarget() özelliğini kullanabilirsiniz. Aşağıdaki kod örneği, karşılaştırmada hedef belgenin nasıl belirtileceğini gösterir.
Document docA = new Document(dataDir + "TestFile.doc");
Document docB = new Document(dataDir + "TestFile - Copy.doc");
CompareOptions options = new CompareOptions();
options.setIgnoreFormatting(true);
// Microsoft Word'ün "Belgeleri Karşılaştır" iletişim kutusundaki "Değişiklikleri göster" seçeneğiyle ilgilidir.
options.setTarget(ComparisonTargetType.NEW);
docA.compare(docB, "user", new Date(), options);
Java’da Word Dosyalarını Karşılaştırmak İçin Ayrıntı Düzeyini Ayarlayın
İki MS Word belgesini karşılaştırırken, değişikliklerin ayrıntı düzeyini de ayarlayabilirsiniz. Bu, CompareOptions.setGranularity() özelliği kullanılarak yapılabilir. Olası ayrıntı düzeyi seçenekleri aşağıdadır.
Aşağıdaki kod örneği, Java kullanarak MS Word belgelerini karşılaştırırken ayrıntı düzeyinin nasıl ayarlanacağını gösterir.
DocumentBuilder builderA = new DocumentBuilder(new Document());
DocumentBuilder builderB = new DocumentBuilder(new Document());
builderA.writeln("This is A simple word");
builderB.writeln("This is B simple words");
CompareOptions co = new CompareOptions();
co.setGranularity(Granularity.CHAR_LEVEL);
builderA.getDocument().compare(builderB.getDocument(), "author", new Date(), co);
Çözüm
Bu yazıda, Java kullanarak çeşitli senaryolarda iki MS Word belgesini nasıl karşılaştıracağınızı gördünüz. Belgeleri kullanarak Aspose.Words for Java hakkında daha fazlasını keşfedebilirsiniz.
Ücretsiz deneyin
Aspose, API’lerini ücretsiz olarak denemeniz için bir geçici lisans sunar. Aspose.Words for Java’yı değerlendirmek için sizinkini alabilirsiniz.