المقدمة
سواء كنت تعمل مع العقود أو السياسات الداخلية أو المواصفات التقنية أو نسخ التسويق، النمط هو نفسه: تتراكم بسرعة عدة إصدارات .docx وفي مرحلة ما تحتاج إلى معرفة ما الذي تغيّر بالضبط بينها. حوار Compare المدمج في Word يكفي للفحص اليدوي العرضي، لكنه لا يقدم مساعدة كبيرة عندما تصبح المقارنة جزءًا من عملية منتظمة أو يجب أتمتتها على جانب الخادم.
GroupDocs.Comparison for .NET يتيح لك إجراء تلك المقارنة من خلال الكود وإنتاج النتيجة بالتنسيق الذي يفضله المراجعين. تدعم المكتبة وضعين للإخراج لوثائق Word:
- وضع المراجعة — يتم كتابة الاختلافات كعلامات مراجعة Word (track‑changes). يفتح المراجعين الملف، يرون أدوات Review → Accept / Reject المألوفة، ويعالجون التغييرات واحدةً تلو الأخرى.
- وضع التظليل — يتم عرض النص المدخل، المحذوف، والمعدل بألوان تظليل مباشرة في متن المستند، بحيث تكون الاختلافات مرئية بنظرة سريعة أثناء قراءة النص النهائي.
في هذا المقال سنستعرض كلا النهجين مع أمثلة C# عملية، نستكشف فئة WordCompareOptions وخصائصها، ونناقش متى يكون كل وضع أكثر منطقية.
المتطلبات المبدئية
قبل أن تبدأ:
- .NET 6.0 أو أحدث.
- GroupDocs.Comparison for .NET — تثبيت عبر NuGet:
dotnet add package GroupDocs.Comparison
- ملف ترخيص (
GroupDocs.Comparison.lic). بدون الترخيص تعمل المكتبة في وضع التقييم مع علامات مائية وحدود حجم. يمكنك طلب ترخيص مؤقت للاختبار. - ملفا Word للمقارنة — سنسميهما
source.docxوtarget.docx. مثال على المحتوى:
source.docx |
target.docx |
|---|
الطريقة 1: مقارنة بتتبع المراجعات
متى تُستخدم: يحتاج المراجعون إلى قبول أو رفض كل تعديل على حدة في Microsoft Word باستخدام أدوات Review → Accept / Reject المدمجة — مثلاً أثناء مفاوضات العقود أو دورات اعتماد السياسات.
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);
}
المستند الناتج في وضع المراجعة (track changes):
ما الذي يحدث في الخلفية:
ComparisonDisplayMode.Revisionsيوجه المحرك لإنتاج علامات Word الأصلية لتتبع التغييرات.DetectStyleChanges = trueيجعل المقارنة تلتقط اختلافات التنسيق (غامق، حجم الخط، اللون) إلى جانب التعديلات النصية.- يفتح ملف الإخراج في Microsoft Word مع لوحة Review جاهزة — كل إدخال، حذف، وتعديل تنسيق مدرج ويمكن قبوله أو رفضه.
نظرًا لأن وضع المراجعة لا يحتاج إلى إعادة رسم محتوى المستند — فقط يضيف بيانات ميتا للمنقحات — فهو عادةً الأسرع بين الوضعين.
الطريقة 2: مقارنة بوضع التظليل
متى تُستخدم: يرغب أصحاب المصلحة في مستند نظيف يُظهر بوضوح ما تغير دون الحاجة للمرور عبر كل مراجعة. سيناريو شائع هو مدير يفتح أحدث نسخة في Word ويمرر بسرعة عبر التظليلات لتفهم تأثير التحديث.
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);
}
المستند الناتج في وضع التظليل:
ما الذي يحدث في الخلفية:
ComparisonDisplayMode.Highlightيرسم الاختلافات كتظليل ملون ضمن السطر — أحمر للحذف، أخضر للإدراج، أزرق لتغييرات النمط (الألوان الافتراضية التي يمكن تعديلها عبرWordCompareOptions/CompareOptionsوإعداداتStyleSettingsالمرتبطة).- يكون المستند جاهزًا للقراءة أو الطباعة دون خطوات إضافية.
- لا تُضاف بيانات تعقب التغييرات إلى الملف.
وضع التظليل يتطلب عملًا داخليًا أكبر لأنه يغيّر محتوى المستند فعليًا ويطبّق تنسيقات. للملفات الكبيرة قد تلاحظ فرقًا ملحوظًا في الأداء مقارنةً بوضع المراجعة.
استكشاف WordCompareOptions
كلا المثالين أعلاه يستخدمان WordCompareOptions — فئة تُورث الإعدادات المشتركة من CompareOptions وتضيف خصائص خاصة بوثائق Word. من خلال هذا النوع تتحكم في وضع العرض (DisplayMode)، ما إذا كان سيتتبع تغييرات النمط (DetectStyleChanges)، اسم المؤلف الظاهر على المراجعات (RevisionAuthorName)، وكيفية معالجة فواصل الأسطر، الإشارات المرجعية، إلخ.
إضافة إلى ذلك، تُظهر الفئة الأساسية CompareOptions أنماطًا للعناصر المدخلة، المحذوفة، والمُعدلة (InsertedItemStyle, DeletedItemStyle, ChangedItemStyle)، مما يتيح لك ضبط الألوان والتنسيق للتظليل حسب الحاجة.
إليك مثالًا صغيرًا لإعداد الخيارات لفحص نصي فقط في وضع المراجعة:
var options = new WordCompareOptions
{
DisplayMode = WordCompareOptions.ComparisonDisplayMode.Revisions,
DetectStyleChanges = false,
RevisionAuthorName = "QA Bot",
CompareBookmarks = true
};
الحصول على التغييرات برمجيًا
بغض النظر عن وضع الإخراج الذي تختاره (مراجعات أو تظليل)، يمكنك دائمًا الحصول على قائمة مُنظمة بالاختلافات المكتشفة عبر واجهة Comparer.GetChanges العامة. تعمل هذه الطريقة مع Word وجميع الصيغ المدعومة الأخرى.
using (var comparer = new Comparer("source.docx"))
{
comparer.Add("target.docx");
comparer.Compare("result_revision.docx");
var changes = comparer.GetChanges(); // returns ChangeInfo[]
}
هذا مفيد عندما تحتاج إلى معالجة التغييرات في سير عملك الخاص — مثلاً، لإنشاء تقرير HTML مخصص، إمداد نظام مراجعة بالاختلافات، أو تجميع إحصاءات حول التعديلات. راجع مرجع الـ API الرسمي لمزيد من التفاصيل: Comparer.GetChanges.
العمل مع المستندات المحمية بكلمة مرور
إذا كانت المستندات محمية بكلمة مرور، لا يزال بإمكانك مقارنتها: تُمرَّر كلمة المرور عبر LoadOptions عند إنشاء كائن Comparer. يعمل هذا النهج بنفس الطريقة مع Word وPDF وغيرها من الصيغ المدعومة.
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);
}
احصل على نسخة تجريبية مجانية
يمكنك تنزيل GroupDocs.Comparison for .NET من صفحة الإصدارات الرسمية. للاختبار غير المحدود، اطلب ترخيصًا مؤقتًا — لا حاجة لبطاقة ائتمان.
الأسئلة المتكررة
س: هل أحتاج إلى تثبيت Microsoft Word أو Office على الخادم؟
ج: لا. مكتبة GroupDocs.Comparison مكتبة .NET مستقلة؛ فهي تقرأ وتكتب ملفات DOCX بنفسها.
س: هل يمكنني مقارنة مستندات بصيغ أخرى غير Word؟
ج: نعم — تدعم المكتبة PDF، جداول Excel، العروض التقديمية، ملفات النص العادي، والعديد غيرها. القائمة الكاملة موجودة في الوثائق.
س: ماذا يحدث إذا لم أُضف ترخيصًا؟
ج: تعمل المكتبة في وضع التقييم. ستحتوي المستندات المُخرجة على علامة مائية وسيتم معالجة الصفحات القليلة الأولى فقط. ترخيص مؤقت يزيل هذه القيود للاختبار.
س: هل يمكن تخصيص ألوان التظليل؟
ج: الألوان الافتراضية تناسب معظم الاستخدامات. للتحكم المتقدم في التنسيق، راجع خاصية StyleSettings في CompareOptions.
الخاتمة
توفر لك GroupDocs.Comparison for .NET طريقتين نظيفتين لمقارنة مستندات Word من خلال الكود. يدمج وضع المراجعة مباشرةً مع عملية المراجعة التي يستخدمها فريقك بالفعل؛ بينما يقدم وضع التظليل ملخصًا بصريًا فوريًا للأشخاص الذين يحتاجون فقط لرؤية التغييرات. تسمح لك فئة WordCompareOptions بضبط الإخراج بدقة — من اكتشاف الأنماط ونسب المؤلف إلى مقارنة الإشارات المرجعية وخصائص المستند.
اختر الوضع الذي يناسب سيناريوك، أو أنشئ كلاهما ودع كل جمهور يختار طريقة العرض المفضلة لديه.