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

جایگزینی فیلد ها اغلب زمانی مورد نیاز است که شما می خواهید سند خود را به عنوان یک کپی استاتیک ذخیره کنید. به عنوان مثال، هنگام ارسال به عنوان پیوست در یک ایمیل. تبدیل فیلد هایی مانند 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 در پاراگراف آخر را به متن استاتیک تبدیل کنیم: