العمل مع حقول الفهرس والجداول

العمل مع حقول الفهرس والجداول

العمل مع حقول الفهرس والجداول

يوضح هذا الدليل كيفية العمل مع عائلة حقول “الفهرس والجداول” في Word — الحقول التي تقف وراء جدول المحتويات، الفهرس، جدول الأشكال، وجدول المراجع. كل من هذه هو فئة فرعية Field في مساحة الاسم Aspose.Words.Fields: FieldToc (جدول المحتويات أو الأشكال)، FieldIndex (فهرس)، FieldXE (مدخل الفهرس)، FieldToa (جدول المراجع)، FieldTA (مدخل جدول المراجع، أو الاقتباس)، FieldTC (مدخل جدول المحتويات)، وFieldRD (المستند المشار إليه، لبناء فهرس أو جدول محتويات موحد عبر ملفات متعددة).


فئة قاعدة الحقل

كل فئة حقل في هذه العائلة ترث من Field، التي تُظهر Start، Separator، وEnd (عُقد FieldStart وFieldSeparator وFieldEnd التي تحيط بالحقل في تدفق النص)، Type (قيمة FieldType — FieldTOC أو FieldIndex أو FieldTOA أو FieldTOCEntry أو FieldIndexEntry أو FieldTOAEntry أو FieldRefDoc لهذه العائلة)، Result/DisplayResult (النص المحسوب حالياً للحقل)، IsLocked وIsDirty، والطرق GetFieldCode()، Update()، Unlink()، وRemove(). Update() يعيد حساب نتيجة الحقل؛ بالنسبة لجدول المحتويات، يعني ذلك إعادة بناء قائمة المدخلات من عناوين المستند أو علامات FieldTC.

إدراج جدول المحتويات

DocumentBuilder.InsertTableOfContents(switches) يدرج FieldToc في الموضع الحالي للباني، باستخدام سلسلة تبديل حقل Word (على سبيل المثال "\o \"1-3\" \h \z \u") للتحكم في مستويات العناوين المضمنة وكيفية تنسيق النتيجة — نفس المفاتيح التي يكتبها Word عندما تُدرج جدول محتويات عبر واجهة المستخدم. بمجرد الإدراج، FieldToc.UpdatePageNumbers() يعيد حساب جزء رقم الصفحة للمدخلات الموجودة. FieldToc يوضح أيضاً الخصائص التي تتحكم في بنية جدول المحتويات مباشرةً: HeadingLevelRange وEntryLevelRange (أي مستويات المخطط المتضمنة)، EntryIdentifier (معرف حقل TC الذي يجب أن يجمعه جدول المحتويات، لبناء جداول محتويات متعددة من علامات FieldTC المختلفة)، InsertHyperlinks، PreserveTabs/PreserveLineBreaks، EntrySeparator/SequenceSeparator، BookmarkName، و— بالنسبة لجدول الأشكال بدلاً من جدول المحتويات — TableOfFiguresLabel وCaptionlessTableOfFiguresLabel.

تمييز مدخلات جدول المحتويات المخصصة

ليس كل إدخال في فهرس المحتويات يأتي من نمط عنوان. FieldTC يحدد موقعًا معينًا كإدخال في جدول المحتويات بشكل مستقل عن نمط الفقرة: FieldTC.Text هو نص الإدخال، EntryLevel هو مستوى المخطط الذي يجب أن يظهر فيه، TypeIdentifier يربطه بـ FieldToc.EntryIdentifier عند إنشاء أكثر من فهرس محتويات، وOmitPageNumber يزيل رقم الصفحة لهذا الإدخال.

إنشاء فهرس

FieldIndex ينفّذ حقل INDEX، الذي يجمع علامات FieldXE (إدخال الفهرس) في المستند إلى فهرس أبجدي. FieldXE.Text هو نص الإدخال، EntryType يجمع الإدخالات إلى مستويات فرعية باستخدام صيغة مفصولة بنقطتين، PageRangeBookmarkName يحدد إشارة مرجعية يصبح امتدادها نطاق صفحات في الفهرس بدلاً من رقم صفحة واحد، وIsBold/IsItalic ينسقان إشارة الصفحة الناتجة. على الجانب FieldIndex، Heading يدرج فواصل عناوين حرفية (A, B, C…)، LetterRange يحدّ الفهرس إلى جزء من الأبجدية، RunSubentriesOnSameLine يتحكم في تخطيط الإدخالات الفرعية، وPageNumberSeparator/PageRangeSeparator/SequenceSeparator/CrossReferenceSeparator تتحكم في علامات الترقيم بين الإدخال وإشارة الصفحة. FieldIndexFormat يسرد بشكل منفصل الأنماط البصرية المدمجة للفهرس في Word (Template, Classic, Fancy, Modern, Bulleted, Formal, Simple).

جدول المراجع

FieldToa وFieldTA هما ما يعادل السلطات في FieldIndex/FieldXE: FieldTA يحدد إشارة في النص (LongCitation وShortCitation النص، EntryCategory لتجميعها تحت عنوان مثل “القضايا” أو “القوانين”، وIsBold/IsItalic للتنسيق)، وFieldToa يجمع تلك الإشارات في جدول، مع EntryCategory لاختيار الفئة التي سيتم تجميعها، UseHeading وUsePassim يتحكمان في عناوين الفئات وت convention “passim” للمصادر المذكورة مرات عديدة، وPageRangeSeparator/PageNumberListSeparator/SequenceSeparator/EntrySeparator/RemoveEntryFormatting يتحكمون في التخطيط.

الإشارة إلى محتوى من مستندات أخرى

FieldRD ينفّذ حقل RD، الذي يُخبر حقل الفهرس أو الفهرس أو جدول السلطات بتضمين إدخالات من ملف آخر عند التجميع — FieldRD.FileName هو المستند المرجعي، وIsPathRelative يتحكم فيما إذا كان يتم حل المسار بالنسبة للمستند الحالي.


نصائح وممارسات أفضل

  • أنشئ سلسلة تبديل الفهرس (TOC) بنفس الطريقة التي يقوم بها Word (\o "1-3" \h \z \u) بدلاً من تكوين كل خاصية FieldToc على حدة، ثم عدل فقط الخصائص المحددة التي تحتاج لتغييرها لاحقًا.
  • استدعِ FieldToc.UpdatePageNumbers() (أو Field.Update()) بعد تغييرات المحتوى حتى يعكس الفهرس (TOC) أو الفهرس أو جدول السلطات المستند الحالي بدلاً من النتائج القديمة التي كانت موجودة عند إدراجه.
  • استخدم FieldTC.TypeIdentifier مع FieldToc.EntryIdentifier عندما يحتاج المستند إلى أكثر من فهرس (TOC) واحد (على سبيل المثال فهرس رئيسي وفهرس منفصل للرسوم البيانية) مُنشأ من مجموعات إدخالات مختلفة.
  • حدد FieldXE.PageRangeBookmarkName (أو علامة النطاق المكافئة لـ FieldTA) بدلاً من تنسيق نطاق الصفحات يدويًا في نص الإدخال، بحيث يظل الفهرس/الجدول متسقًا إذا تم نقل المحتوى.
  • تذكر أن أرقام الصفحات في نتائج INDEX/TOC/TOA لهذا الإصدار تُقَيَّم كقيم نائبة بدلاً من أرقام صفحات حقيقية، لأن تخطيط الصفحات وترقيمها ليسا جزءًا من هذا الإصدار.

مشكلات شائعة

المشكلةالسببالإصلاح
جدول المحتويات لا يتضمن العناوين المتوقعةسلسلة التبديل الخاصة بجدول المحتويات (أو HeadingLevelRange) تستبعد تلك مستويات المخططقم بتعديل المفاتيح الممررة إلى InsertTableOfContents أو اضبط FieldToc.HeadingLevelRange
إدخال الفهرس لا يظهر في الموضع المتوقععلامة FieldXE المقابلة مفقودة، أو صياغة المستوى الفرعي EntryType لا تتطابق مع ما يتوقعه FieldIndexتأكد من وجود علامات FieldXE وأن قيم EntryType الخاصة بها مُنسَّقة بشكل متسق
تبدو نتائج الحقل قديمة بعد تحرير المحتوىلم يتم تحديث الحقل بعد التعديلاستدعِ Update() على الحقل (أو UpdateFields() على Document)
لا تُضمّن الإدخالات من مستند آخر عند التجميعلا يوجد FieldRD يُشير إلى ذلك المستند، أو أن IsPathRelative لا يتطابق مع الطريقة التي يجب أن يُحلّ بها المسارأضف FieldRD مع الإعدادات الصحيحة لـ FileName و IsPathRelative

FAQ

كيف يمكنني إدراج فهرس المحتويات برمجيًا؟

استدعِ DocumentBuilder.InsertTableOfContents(switches) بسلسلة تبديل على نمط Word، مثل "\o \"1-3\" \h \z \u"، في الموضع الذي يجب أن يظهر فيه الفهرس (TOC).

كيف يمكنني وضع علامة على النص كإدخال فهرس؟

أدرج حقل FieldXE في ذلك الموقع (على سبيل المثال عبر DocumentBuilder.InsertField) مع تعيين خاصية Text إلى نص الإدخال؛ FieldIndex يجمع كل علامات FieldXE في المستند إلى نتيجة الفهرس.

ما الفرق بين FieldTC وإدخالات الفهرس المعتمدة على العناوين؟

السلوك الافتراضي للفهرس (TOC) في Word يجمع الإدخالات من الفقرات باستخدام أنماط العناوين. يتيح لك FieldTC وضع علامة على موقع عشوائي كإدخال فهرس مستقل عن نمط الفقرة، والذي يمكن لـ FieldToc تضمينه عبر مطابقة قيم EntryIdentifier/TypeIdentifier.

كيف أقوم بتحديث فهرس المحتويات (TOC) أو الفهرس بعد تغيير المستند؟

استدعِ Update() على الحقل المحدد (على سبيل المثال FieldToc.Update()، أو FieldToc.UpdatePageNumbers() لأرقام الصفحات فقط)، أو Document.UpdateFields() لتحديث كل الحقول في المستند.

هل يمكنني تجميع فهرس المحتويات (TOC) أو الفهرس عبر مستندات متعددة؟

نعم — أدخل حقل FieldRD يشير إلى كل مستند إضافي عبر FileName; حقل التجميع (FieldToc أو FieldIndex أو FieldToa) يتضمن الإدخالات من المستندات المشار إليها عندما يتم تحديثه.


API Reference ملخص

فئة/طريقةوصف
Fieldالفئة الأساسية لجميع أنواع الحقول، بما في ذلك Start/Separator/End، Type، Update()
DocumentBuilder.InsertTableOfContents(switches)أدرج FieldToc باستخدام مفاتيح الفهرس على نمط Word
FieldTocيُنفّذ حقل TOC (جدول المحتويات أو جدول الأشكال)
FieldTCيُعلّم إدخال مخصص في جدول المحتويات في موقع محدد
FieldIndexيُنفّذ حقل INDEX، ويجمع علامات FieldXE
FieldXEيُعلِّم موقعًا كإدخال فهرس
FieldToaينفّذ حقل جدول المراجع، ويجمع علامات FieldTA
FieldTAيُعلِّم اقتباسًا لجدول المراجع
FieldRDيُشير إلى محتوى مستند آخر عند تجميع TOC أو الفهرس أو جدول المراجع
FieldIndexFormatEnum لأنماط الفهرس البصرية المدمجة في Word

انظر أيضاً

 العربية