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

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

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

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

update-remove-a-field-aspose-words

يمكن أيضا رؤية الهيكل أدناه في شكل هرمي باستخدام المشروع التجريبي “DocumentExplorer”، الذي يأتي مع Aspose.Words المثبت.

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

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

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

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

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

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

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

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

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

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

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

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

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

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