استبدال الحقول بنص ثابت

غالبًا ما يكون استبدال الحقول مطلوبًا عندما ترغب في حفظ المستند كنسخة ثابتة. على سبيل المثال، عند الإرسال كمرفق في رسالة بريد إلكتروني. إن تحويل الحقول مثل DATE أو TIME إلى نص ثابت سيسمح للمستند بعرض نفس التاريخ الذي تم إرساله فيه. أيضًا، في بعض المواقف، قد تحتاج إلى إزالة حقول IF الشرطية من مستندك واستبدالها بأحدث نتيجة نصية بدلاً من ذلك. على سبيل المثال، تحويل نتيجة حقل IF إلى نص ثابت بحيث لا يغير قيمته ديناميكيًا بعد الآن عند تحديث الحقول الموجودة في المستند.

يوضح الرسم البياني أدناه كيفية تخزين حقل IF في مستند:

  • النص محاط بالعقد الميدانية الخاصة – FieldStart وFieldEnd
  • تقوم عقدة FieldSeparator بفصل النص الموجود داخل الحقل إلى رمز الحقل ونتيجة الحقل
  • يحدد رمز الحقل السلوك العام للحقل، بينما تحتفظ نتيجة الحقل بأحدث نتيجة عند تحديث هذا الحقل باستخدام Microsoft Word أو Aspose.Words
  • نتيجة الحقل هي ما يتم تخزينه في الحقل وعرضه في المستند عند عرضه

update-remove-a-field-aspose-words

يمكن أيضًا رؤية الهيكل أدناه في شكل هرمي باستخدام المشروع التجريبي “مستكشف المستندات”.

update-remove-a-field-aspose-words-2

الحقول التي لا يمكن استبدالها بالنص

لا يعمل استبدال حقل بنص ثابت بشكل صحيح بالنسبة لبعض الحقول في الرأس أو التذييل.

على سبيل المثال، ستؤدي محاولة تحويل حقل PAGE في الرأس أو التذييل إلى نص ثابت إلى عرض نفس القيمة على جميع الصفحات. وذلك لأن الرؤوس والتذييلات تتكرر عبر صفحات متعددة، وعندما تظل كحقول، تتم معالجتها بشكل خاص بحيث تعرض النتيجة الصحيحة لكل صفحة.

ومع ذلك، في الرأس، يُترجم حقل PAGE بشكل جيد إلى التشغيل الثابت للنص. سيتم تقييم هذا التشغيل للنص كما لو كانت الصفحة الأخيرة في القسم، مما سيؤدي إلى قيام أي حقل PAGE في الرأس بعرض الصفحة الأخيرة على جميع الصفحات.

يوضح مثال التعليمات البرمجية التالي كيفية استبدال الحقل بأحدث نتائجه:

تحويل أنواع معينة من الحقول في أجزاء محددة من المستند

بما أن طريقة ConvertFieldsToStaticText تقبل معلمتين - خصائص CompositeNode وتعداد FieldType، فمن الممكن تمرير أي عقدة مركبة إلى هذه الطريقة. يسمح هذا بتحويل الحقول إلى نص ثابت فقط في أجزاء معينة من المستند.

على سبيل المثال، يمكنك تمرير كائن Document وتحويل الحقول من النوع المحدد من المستند بأكمله إلى نص ثابت، أو يمكنك تمرير كائن Body لقسم ما وتحويل الحقول الموجودة في ذلك النص فقط.

يحدد تعداد FieldType الذي تم تمريره إلى طريقة ConvertFieldsToStaticText نوع الحقول التي يجب تحويلها إلى نص ثابت. سيبقى أي نوع حقل آخر موجود في المستند دون تغيير.

يوضح مثال التعليمات البرمجية التالي كيفية تحديد حقول من نوع معين - targetFieldType في عقدة معينة - compositeNode ثم تحويلها إلى نص ثابت:

يوضح مثال التعليمات البرمجية التالي كيفية تحويل كافة حقول IF في مستند إلى نص ثابت:

يوضح مثال التعليمات البرمجية التالي كيفية تحويل كافة حقول PAGE في النص الأساسي للمستند إلى نص ثابت:

يوضح مثال التعليمات البرمجية التالي كيفية تحويل كافة حقول IF في الفقرة الأخيرة إلى نص ثابت: