Замініть поля статичним текстом

Заміна полів часто потрібна, коли ви хочете зберегти документ як статичну копію. Наприклад, при відправці в якості вкладення в електронному листі. Перетворення таких полів, як 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 в останньому абзаці в статичний текст: