المقدمة
سواء كنت تعمل مع العقود أو السياسات الداخلية أو المواصفات الفنية أو نسخ التسويق، النمط هو نفسه: تتراكم لديك عدة إصدارات .docx بسرعة وفي مرحلة ما تحتاج إلى معرفة ما تغيّر بالضبط بينهما. صندوق الحوار المدمج Compare في Word يكفي لفحص يدوي عرضي، لكنه لا يساعد كثيرًا عندما يصبح المقارنة جزءًا من عملية منتظمة أو يجب أتمتتها على جانب الخادم.
GroupDocs.Comparison for .NET يتيح لك تشغيل تلك المقارنة من الشيفرة وإنتاج النتيجة بالصيغ التي يفضّلها مراجعوك. المكتبة تدعم وضعين لإخراج المقارنة لمستندات Word:
- وضع المراجعة — يتم كتابة الاختلافات كعلامات مراجعة (track‑changes) في Word. يفتح المراجعون الملف، يرون أدوات 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ي instruct المحرك لإصدار علامات تتبع تغييرات Word الأصلية.DetectStyleChanges = trueيجعل المقارنة تلتقط فروق التنسيق (غليظ، حجم الخط، اللون) إلى جانب التعديلات النصية.- يفتح ملف الإخراج في Microsoft Word مع لوحة Review جاهزة — كل إدراج، حذف، وتعديل تنسيق يُدرج ويمكن قبوله أو رفضه.
نظرًا لأن وضع المراجعة لا يحتاج إلى إعادة رسم محتوى المستند — فهو يرفق فقط بيانات ميتا للـ revision — فإنه عادةً يكون الأسرع بين الوضعين.
الطريقة 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(); // يُعيد 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 بضبط الإخراج بدقة — من اكتشاف الأنماط وإسناد المؤلف إلى مقارنة العلامات المرجعية وخصائص المستند.
اختر الوضع الذي يناسب حالتك، أو أنشئ كلاهما ودع كل فئة من الجمهور تختار العرض المفضَّل لديها.