Giriş

Sözleşmeler, iç politikalar, teknik özellikler ya da pazarlama metinleriyle çalışıyor olun, desen aynı: kısa sürede birkaç .docx sürümü biriktiriyorsunuz ve bir noktada aralarındaki tam olarak ne değiştiğini görmeniz gerekiyor. Word’ün yerleşik Compare iletişim kutusu ara sıra bir manuel kontrol için yeterli, ancak karşılaştırma düzenli bir sürecin parçası haline geldiğinde ya da sunucu tarafında otomatikleştirilmesi gerektiğinde çok fazla yardımcı olmuyor.

GroupDocs.Comparison for .NET, bu karşılaştırmayı koddan çalıştırmanıza ve sonuçları inceleyenlerin tercih ettiği biçimde üretmenize olanak tanır. Kütüphane, Word belgeleri için iki çıktı modu sunar:

  1. Revision mode — farklılıklar Word revizyonu (izleme‑değişiklikleri) işaretlemesi olarak yazılır. İnceleyenler dosyayı açar, tanıdık Review → Accept / Reject kontrollerini görür ve değişiklikleri tek tek işler.
  2. Highlight mode — eklenen, silinen ve değiştirilmiş metin, belge gövdesinde renkli vurgularla gösterilir; böylece farklar, son metni okurken bir bakışta görülür.

Bu makalede her iki yaklaşımı çalışan C# örnekleriyle inceleyecek, WordCompareOptions sınıfı ve özelliklerini keşfedecek ve her modun ne zaman daha mantıklı olduğundan bahsedeceğiz.

Önkoşullar

Başlamadan önce:

  • .NET 6.0 ya da daha yeni bir sürüm.
  • GroupDocs.Comparison for .NET — NuGet üzerinden kurun:
dotnet add package GroupDocs.Comparison
  • Bir lisans dosyası (GroupDocs.Comparison.lic). Lisans olmadan kütüphane, filigranlar ve boyut sınırlamalarıyla değerlendirme modunda çalışır. Test için bir geçici lisans talep edebilirsiniz.
  • Karşılaştırılacak iki Word dosyası — buna source.docx ve target.docx diyeceğiz. Örnek içerik:
source.docx target.docx

Yöntem 1: Revizyon‑İzleme Karşılaştırması

Ne zaman kullanılır: İnceleyenlerin Microsoft Word içinde yerleşik Review → Accept / Reject araçlarını kullanarak her bir değişikliği tek tek kabul veya reddetmesi gerektiğinde — örneğin sözleşme müzakereleri ya da politika onay döngülerinde.

using GroupDocs.Comparison;
using GroupDocs.Comparison.Options;

using (var comparer = new Comparer("source.docx"))
{
    comparer.Add("target.docx");

    var options = new WordCompareOptions
    {
        DetectStyleChanges = true,
        DisplayMode = WordCompareOptions.ComparisonDisplayMode.Revisions
    };

    comparer.Compare("result_revision.docx", options);
}

Revizyon (izleme‑değişiklikleri) modunda oluşturulan belge:

Revizyon (izleme‑değişiklikleri) modunda karşılaştırma sonucu

Nasıl çalışır:

  • ComparisonDisplayMode.Revisions, motorun yerel Word izleme‑değişiklikleri işaretlemesi üretmesini söyler.
  • DetectStyleChanges = true, karşılaştırmanın biçim (kalın, font boyutu, renk vb.) farklarını da metin düzenlemeleriyle birlikte yakalamasını sağlar.
  • Çıktı dosyası Microsoft Word’da Review bölmesi açık olarak açılır — her ekleme, silme ve stil değişikliği listelenir ve kabul ya da reddedilebilir.

Revizyon modu, belge içeriğini yeniden oluşturmak zorunda olmadığı için (sadece revizyon meta verisini ekler) iki mod arasında genellikle daha hızlıdır.


Yöntem 2: Vurgu‑Modu Karşılaştırması

Ne zaman kullanılır: Paydaşlar, değişiklikleri net bir şekilde gösteren temiz bir belge ister ancak her bir revizyonu tek tek incelemekle ilgilenmez. Tipik bir senaryo, bir yöneticinin en son sürümü Word’de açıp vurgulanan ekleme ve silmeleri hızlıca tarayarak güncellemenin etkisini anlamasıdır.

using GroupDocs.Comparison;
using GroupDocs.Comparison.Options;

using (var comparer = new Comparer("source.docx"))
{
    comparer.Add("target.docx");

    var options = new WordCompareOptions
    {
        DetectStyleChanges = true,
        DisplayMode = WordCompareOptions.ComparisonDisplayMode.Highlight
    };

    comparer.Compare("result_highlighted.docx", options);
}

Vurgu modunda oluşturulan belge:

Vurgu modunda karşılaştırma sonucu

Nasıl çalışır:

  • ComparisonDisplayMode.Highlight, farklılıkları satır içi renkli vurgular olarak gösterir — silmeler kırmızı, eklemeler yeşil, stil değişiklikleri mavi (varsayılan renkler WordCompareOptions / CompareOptions ve ilgili StyleSettings aracılığıyla ayarlanabilir).
  • Belge, ekstra bir adım olmaksızın okunmaya ya da yazdırılmaya hazırdır.
  • Dosyaya izleme‑değişiklikleri meta verisi eklenmez.

Vurgu modu, gerçek belge içeriğini değiştirmek ve biçimlendirme uygulamak zorunda olduğu için dahili olarak daha çok iş yapar. Büyük dosyalarda revizyon moduna kıyasla belirgin bir performans farkı gözlemleyebilirsiniz.


WordCompareOptions Keşfi

Yukarıdaki iki örnek de WordCompareOptions sınıfını kullanır — bu sınıf, ortak ayarları CompareOptions sınıfından devralır ve Word belgelerine özgü özellikler ekler. Bu tip aracılığıyla görüntüleme modunu (DisplayMode), stil değişikliklerini izleyip izlemeyeceğinizi (DetectStyleChanges), revizyonlarda hangi yazar adının görüneceğini (RevisionAuthorName), satır sonları, yer imleri vb. kontrol edersiniz.

Bunun yanı sıra, temel CompareOptions eklenmiş, silinmiş ve değiştirilmiş öğeler için stiller (InsertedItemStyle, DeletedItemStyle, ChangedItemStyle) sunar; böylece gerektiğinde vurguların renk ve biçimini ince ayar yapabilirsiniz.

Revizyon modunda sadece metin kontrolü için seçenekleri yapılandırmaya dair kısa bir örnek:

var options = new WordCompareOptions
{
    DisplayMode = WordCompareOptions.ComparisonDisplayMode.Revisions,
    DetectStyleChanges = false,
    RevisionAuthorName = "QA Bot",
    CompareBookmarks = true
};

Değişiklikleri Programlı Olarak Almak

Hangi çıktı modunu seçerseniz seçin (revizyon ya da vurgu), Comparer.GetChanges API’si sayesinde tespit edilen farkların yapılandırılmış bir listesini her zaman alabilirsiniz. Bu yöntem Word ve diğer tüm desteklenen formatlar için çalışır.

using (var comparer = new Comparer("source.docx"))
{
    comparer.Add("target.docx");

    comparer.Compare("result_revision.docx");

    var changes = comparer.GetChanges(); // returns ChangeInfo[]
}

Bu, kendi iş akışınızda değişiklikleri sonradan işlemek istediğinizde faydalıdır — örneğin özel bir HTML raporu oluşturmak, farkları bir inceleme sistemine beslemek ya da düzenlemeler hakkında istatistik toplamak. Daha fazla ayrıntı için resmi API referansına bakın: Comparer.GetChanges.


Şifre Koruması Olan Belgelerle Çalışmak

Belgeler bir şifreyle korunmuşsa yine de karşılaştırılabilir: şifre, Comparer oluşturulurken LoadOptions aracılığıyla geçirilir. Bu yaklaşım Word, PDF ve diğer desteklenen formatlar için aynı şekilde çalışır.

using GroupDocs.Comparison;
using GroupDocs.Comparison.Options;

using (var comparer = new Comparer("source_protected.docx",
    new LoadOptions { Password = "secret" }))
{
    comparer.Add("target_protected.docx");

    var options = new WordCompareOptions
    {
        DisplayMode = WordCompareOptions.ComparisonDisplayMode.Revisions
    };

    comparer.Compare("result_protected.docx", options);
}

Ücretsiz Deneme Alın

GroupDocs.Comparison for .NET’i resmi sürümler sayfasından indirebilirsiniz. Sınırsız test için bir geçici lisans talep edin — kredi kartı gerekmiyor.


Sıkça Sorulan Sorular

S: Sunucuda Microsoft Word ya da Office yüklü olması gerekir mi?
C: Hayır. GroupDocs.Comparison bağımsız bir .NET kütüphanesidir; DOCX dosyalarını kendi başına okur ve yazar.

S: Word dışındaki formatlarda da belge karşılaştırabilir miyim?
C: Evet — kütüphane PDF, Excel tabloları, sunumlar, düz metin dosyaları ve daha birçok formatı destekler. Tam liste için belgelere bakın.

S: Lisans ayarlamazsam ne olur?
C: Kütüphane değerlendirme modunda çalışır. Çıktı belgelerinde filigran bulunur ve sadece ilk birkaç sayfa işlenir. Bir geçici lisans bu sınırlamaları test için kaldırır.

S: Vurgu renklerini özelleştirebilir miyim?
C: Varsayılan renkler çoğu senaryo için yeterlidir. Daha ileri stil kontrolü için CompareOptions üzerindeki StyleSettings özelliğine bakın.


Sonuç

GroupDocs.Comparison for .NET, koddan Word belgelerini karşılaştırmak için iki temiz yol sunar. Revizyon modu, ekibinizin zaten kullandığı inceleme iş akışına doğrudan bağlanırken; vurgu modu, sadece değişiklikleri görmek isteyen kişiler için anlık görsel bir özet sağlar. WordCompareOptions sınıfı, stil algılamadan yazar atamasına, yer imi ve belge‑özelliği karşılaştırmalarına kadar çıktıyı ince ayar yapmanıza imkan tanır.

Senaryonuza uyan modu seçin, ya da ikisini de üretip her izleyicinin tercih ettiği görünümü seçmesine izin verin.

Ek Kaynaklar