فیلدها را با متن ثابت جایگزین کنید

هنگامی که می خواهید سند خود را به عنوان یک کپی ثابت ذخیره کنید، اغلب به جایگزینی فیلدها نیاز است. به عنوان مثال، هنگام ارسال به عنوان پیوست در یک ایمیل. تبدیل فیلدهایی مانند DATE یا TIME به متن ایستا به سند اجازه می دهد تا همان تاریخ ارسال را نشان دهد. همچنین، در برخی شرایط، ممکن است لازم باشد فیلدهای IF مشروط را از سند خود حذف کرده و به جای آن، جدیدترین نتیجه متنی را جایگزین کنید. به عنوان مثال، تبدیل نتیجه فیلد IF به متن ایستا، بنابراین وقتی فیلدهای سند به روز می شوند، دیگر به صورت پویا مقدار آن تغییر نمی کند.

نمودار زیر نشان می دهد که چگونه فیلد IF در یک سند ذخیره می شود:

  • متن توسط گره های میدان ویژه احاطه شده است - FieldStart و FieldEnd
  • گره FieldSeparator متن داخل فیلد را به کد فیلد و نتیجه فیلد جدا می کند
  • کد فیلد رفتار کلی فیلد را مشخص می کند، در حالی که نتیجه فیلد آخرین نتیجه را هنگامی که این فیلد با استفاده از Microsoft Word یا Aspose.Words به روز می شود حفظ می کند
  • نتیجه فیلد چیزی است که در فیلد ذخیره می شود و هنگام مشاهده در سند نمایش داده می شود

update-remove-a-field-aspose-words

این ساختار همچنین در زیر به صورت سلسله مراتبی با استفاده از پروژه نمایشی “DocumentExplorer”. قابل مشاهده است

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

فیلدهایی که با متن جایگزین نمی شوند

جایگزین کردن یک فیلد با متن ایستا برای برخی از فیلدهای یک سرصفحه یا پاورقی به درستی کار نمی کند.

به عنوان مثال، تلاش برای تبدیل فیلد PAGE در سرصفحه یا پاورقی به متن ایستا منجر به نمایش مقدار یکسان در همه صفحات می شود. این به این دلیل است که سرصفحه ها و پاورقی ها در چندین صفحه تکرار می شوند، و زمانی که آنها به عنوان فیلد باقی می مانند، به طور خاص مدیریت می شوند تا نتیجه صحیح را برای هر صفحه نمایش دهند.

با این حال، در هدر، فیلد PAGE به خوبی به اجرای ایستا متن ترجمه می شود. این اجرا از متن به گونه‌ای ارزیابی می‌شود که گویی آخرین صفحه در بخش است، که باعث می‌شود هر فیلد PAGE در هدر، آخرین صفحه را در تمام صفحات نمایش دهد.

مثال کد زیر نحوه جایگزینی فیلد با آخرین نتیجه آن را نشان می دهد:

انواع فیلدهای خاص را در بخش های سند خاص تبدیل کنید

از آنجایی که روش ConvertFieldsToStaticText دو پارامتر را می پذیرد - ویژگی های CompositeNode و شمارش FieldType، امکان انتقال هر گره ترکیبی به این روش وجود دارد. این اجازه می دهد تا فیلدها فقط در بخش های خاصی از سند به متن ثابت تبدیل شوند.

به عنوان مثال، می توانید یک شی Document را ارسال کنید و فیلدهایی از نوع مشخص شده را از کل سند به متن ثابت تبدیل کنید، یا می توانید یک شی Body از یک بخش را ارسال کنید و فقط فیلدهای موجود در آن بدنه را تبدیل کنید.

شمارش FieldType که به روش ConvertFieldsToStaticText ارسال می شود، مشخص می کند که چه نوع فیلدهایی باید به متن ثابت تبدیل شوند. هر نوع فیلد دیگری که در سند یافت می شود بدون تغییر باقی می ماند.

مثال کد زیر نحوه انتخاب فیلدهای یک نوع خاص - targetFieldType در یک گره خاص - compositeNode و سپس تبدیل آنها به متن ثابت را نشان می دهد:

مثال کد زیر نحوه تبدیل تمام فیلدهای IF در یک سند را به متن ثابت نشان می دهد:

مثال کد زیر نحوه تبدیل تمام فیلدهای PAGE در بدنه یک سند را به متن ثابت نشان می دهد:

مثال کد زیر نحوه تبدیل تمام فیلدهای IF در پاراگراف آخر را به متن ثابت نشان می دهد: