حقول الترقيم (AUTONUM, PAGE, SEQ، وأكثر)
حقول الترقيم (AUTONUM، PAGE، SEQ، والمزيد)
هذا الدليل يوضح كيفية العمل مع حقول الترقيم التلقائي في Word Aspose.Words FOSS لـ .NET، وكيف تختلف عن الترقيم القائم على القوائم. العمل مع القوائم covers List, ListFormat، و ListLevel – نموذج الكائن وراء فقرات القوائم المرقمة والمرقمة بالنقاط في Word. كما أن Word لديها عائلة منفصلة من الترقيم fields التي تحسب رقمًا في موضع الحقل داخل النص، بدلاً من خلال تنسيق قائمة الفقرات: الترقيم التلقائي القانوني وتخطيط المستند، عدادات الصفحات والأقسام، الترقيم المرتبط بالقوائم، والسلاسل المسماة. إنها نمذج كل منها كـ Field فئة فرعية في الـ Aspose.Words.Fields namespace، بالإضافة إلى NumberStyle enum المشترك بين مستويات القوائم، الحواشي السفلية والحواشي النهائية، وأرقام الصفحات لاختيار طريقة عرض الرقم.
حقول الترقيم التلقائي: AUTONUM, AUTONUMLGL, AUTONUMOUT
FieldAutoNum يطبق AUTONUM الحقل (ترقيم تسلسلي بسيط) ويكشف عن SeparatorCharacter. FieldAutoNumLgl implements AUTONUMLGL (ترقيم قانوني/على نمط المخطط)، إضافة RemoveTrailingPeriod جنباً إلى جنب مع الخاص به SeparatorCharacter. FieldAutoNumOut implements AUTONUMOUT (ترقيم المخطط) وليس له خصائص خاصة به تتجاوز القاعدة Field الأعضاء الموضحين في العمل مع الحقول.
الترقيم المرتبط بالقائمة باستخدام FieldListNum
FieldListNum ينفّذ حقل LISTNUM: ListName يحدد تعريف الترقيم التجريدي الذي سيُستخدم، وHasListName يبلّغ ما إذا كان رمز الحقل يزوّد باسم فعليًا. ListLevel يتجاوز مستوى القائمة الافتراضي الذي يرقم عنده الحقل، وStartingNumber يحدد القيمة التي يبدأ منها ترقيم الحقل.
عدادات الصفحات والأقسام: FieldPage, FieldSection, FieldSectionPages
FieldPage يطبق الـ PAGE حقل و FieldSectionPages implements SECTIONPAGES. كلاهما يعتمد على تخطيط الصفحة المحسوب لإنتاج نتيجة؛ كما هو الحال مع الـ NUMPAGES الحقل الموضح في العمل مع الحقول، قيم الحقول المعتمدة على التخطيط لا يتم حسابها في هذا الإصدار لأنه لا يتضمن محرك تخطيط/عرض للصفحات، لذا تُقيم هذه الحقول إلى عنصر نائب 0. FieldSection implements SECTION، تُعيد رقم القسم الحالي للمستند – لا تعتمد على الترقيم الصفحي ولا تتأثر بتلك القيود.
تسلسلات مسماة مع FieldSeq
FieldSeq يطبق حقل SEQ للتسلسلات المسماة ذات الترقيم المستقل (مثل الأشكال أو الجداول): SequenceIdentifier يحدد اسم التسلسل، و BookmarkName يوجه الحقل اختياريًا إلى عنصر آخر في المستند بدلاً من موقع الحقل نفسه. InsertNextNumber يُدرج الرقم التالي في التسلسل دون عرض قيمة للموقع الحالي، و ResetNumber / ResetHeadingLevel يعيدان عداد التسلسل إلى رقم محدد، أو يُعيدان تشغيله عند مستوى عنوان معين.
FieldRevNum
FieldRevNum يطبق حقل REVNUM، ولا يمتلك أي خصائص خاصة به بخلاف الأعضاء الأساسية Field.
تنسيق الأرقام باستخدام NumberStyle
NumberStyle هو التعداد (enum) المستخدم عبر مستويات القوائم، وترقيم الحواشي/الحواشي الختامية، وأرقام الصفحات لاختيار طريقة عرض الرقم. تشمل الأنماط الشائعة Arabic، UppercaseRoman / LowercaseRoman، UppercaseLetter / LowercaseLetter، Ordinal، و OrdinalText، إلى جانب مجموعة كبيرة من الأنماط الخاصة باللغات (Kanji، Hangul، Hanja، ThaiLetter، HindiLetter1، والعديد غيرها) بالإضافة إلى Bullet، LeadingZero، None، و Custom لتنسيق يُقدمه المستدعي.
نصائح وأفضل الممارسات
- استخدم
FieldListNumعندما يحتاج رقم إلى الإشارة إلى تعريف قائمة موجود بالاسم؛ استخدمFieldAutoNum/FieldAutoNumLgl/FieldAutoNumOutللترقيم الذي لا يرتبط بـListمحدد. - تذكر أن
FieldPageوFieldSectionPagesيعتمدان على التخطيط، كما هو الحال معNUMPAGES– لا تعتمد على أنResultالخاصة بهما تعكس عدد صفحات محسبًا فعليًا في هذا الإصدار. - استخدم
FieldSeq.BookmarkNameعندما يحتاج حقل SEQ إلى الإشارة إلى رقم معرف في مكان آخر من المستند بدلاً من زيادة عداده الخاص في موقع الحقل. - حدد
FieldSeq.ResetHeadingLevelعندما يجب أن يبدأ تسلسل مرقم (مثل أرقام الأشكال) من جديد عند كل فصل أو عنوان قسم جديد.
مشكلات شائعة
| المشكلة | السبب | الإصلاح |
|---|---|---|
FieldPage أو FieldSectionPages دائمًا يُظهر 0 | هذه الحقول تعتمد على تخطيط الصفحات المحسوب، والذي ليس جزءًا من هذا الإصدار | السلوك المتوقع – استخدم النسخة التجارية Aspose.Words لـ .NET إذا كان عدد الصفحات المحسوب مطلوبًا |
FieldListNum لا يستخدم تنسيق القائمة المتوقع | ListName لا يتطابق مع تعريف ترقيم تجريدي موجود في المستند | تأكد من اسم القائمة الدقيق، أو تحقق من HasListName لترى ما إذا كان كود الحقل يوفره على الإطلاق |
FieldSeq الأرقام لا تعيد البدء حيث يُتوقع | ResetNumber أو ResetHeadingLevel لم يتم تعيينه على الحقل الذي يجب أن يعيد تشغيل السلسلة | قم بتعيين خاصية إعادة الضبط المناسبة على ذلك المثيل من FieldSeq |
FAQ
ما الفرق بين ترقيم القوائم وهذه الحقول الرقمية؟
ترقيم القوائم (List, ListFormat, ListLevel, مغطى في العمل مع القوائم) ينسق الفقرات بالكامل كعناصر قائمة. الحقول في هذه الصفحة تحسب رقمًا في نقطة معينة من النص – للتسلسلات، عدادات الصفحات/الأقسام، أو الترقيم التلقائي على الطراز القانوني – مستقلة عن تنسيق قائمة الفقرات.
لماذا يتم تقييم حقل PAGE دائمًا إلى 0؟
FieldPage يعتمد على تخطيط الصفحة المحسوب، وهذا الإصدار لا يتضمن محرك تخطيط/عرض الصفحات – السبب نفسه هو أن NUMPAGES يُقيم إلى قيمة عنصر نائب.
كيف يمكنني إنشاء تسلسل مسمى، مرقم بشكل مستقل مثل “Figure 1”، “Figure 2”؟
استخدم FieldSeq مع SequenceIdentifier ثابت (مثل "Figure") عبر كل مثيل حقل؛ كل منها يعرض الرقم التالي في ذلك التسلسل.
كيف يمكنني التحكم في نمط الأرقام أو الحروف الذي يُعرض به الرقم؟
استخدم تعداد NumberStyle – القيم مثل Arabic، UppercaseRoman، LowercaseLetter، وOrdinalText تختار نمط العرض، إلى جانب Bullet، None، وCustom للتنسيقات غير الرقمية أو التي يقدمها المستدعي.
API Reference ملخص
| فئة / تعداد | وصف |
|---|---|
FieldAutoNum | AUTONUM field; SeparatorCharacter |
FieldAutoNumLgl | AUTONUMLGL حقل; RemoveTrailingPeriod, SeparatorCharacter |
FieldAutoNumOut | AUTONUMOUT حقل |
FieldListNum | LISTNUM حقل; ListName, HasListName, ListLevel, StartingNumber |
FieldPage | PAGE حقل (معتمد على التخطيط؛ يُقيّم إلى 0 في هذا الإصدار) |
FieldSection | SECTION حقل |
FieldSectionPages | SECTIONPAGES حقل (معتمد على التخطيط؛ يُقَيِّم إلى 0 في هذه النسخة) |
FieldSeq | SEQ حقل; SequenceIdentifier, BookmarkName, InsertNextNumber, ResetNumber, ResetHeadingLevel |
FieldRevNum | REVNUM حقل |
NumberStyle | تعداد لأنماط عرض الأرقام المستخدمة في مستويات القوائم، الحواشي/الحواشي السفلية، وأرقام الصفحات |