Замініть поля статичним текстом
Заміна полів часто потрібна, коли ви хочете зберегти документ як статичну копію. Наприклад, при відправці в якості вкладення в електронному листі. Перетворення таких полів, як DATE
або TIME
, у статичний текст дозволить відображати ту саму дату в документі, що і при поданні. Крім того, у деяких ситуаціях вам може знадобитися видалити умовні поля IF
зі свого документа та замінити їх останнім текстовим результатом. Наприклад, перетворимо результат роботи поля IF
в статичний текст, щоб воно більше не змінювало своє значення динамічно при оновленні полів в документі.
На наведеній нижче діаграмі показано, як поле IF
зберігається в документі:
- текст оточений спеціальними вузлами полів - FieldStart і FieldEnd
- вузол FieldSeparator розділяє текст всередині поля на код поля та результат поля
- код поля визначає загальну поведінку поля, тоді як результат за полем зберігає останній результат при оновленні цього поля за допомогою Microsoft Word або Aspose.Words
- результат роботи з полем-це те, що зберігається в полі і відображається в документі при перегляді
Структуру також можна побачити нижче в ієрархічному вигляді, використовуючи демонстраційний проект “DocumentExplorer”.
Поля, які не можуть бути замінені текстом
Заміна поля статичним текстом не працює належним чином для деяких полів у верхньому або нижньому колонтитулі.
Наприклад, спроба перетворити поле PAGE
у верхньому або нижньому колонтитулі в статичний текст призведе до відображення одного і того ж значення на всіх сторінках. Це пов’язано з тим, що колонтитули та колонтитули повторюються на кількох сторінках, і коли вони залишаються у вигляді полів, вони обробляються певним чином, щоб відобразити правильний результат для кожної сторінки.
Однак у заголовку поле PAGE
добре перетворюється на статичний фрагмент тексту. Цей фрагмент тексту буде оцінюватися так, ніби це остання сторінка в розділі, що призведе до відображення будь-якого поля PAGE
у заголовку як останньої сторінки на всіх сторінках.
Наступний приклад коду показує, як замінити поле останнім результатом:
Перетворення певних типів полів у певних частинах документа
Оскільки метод ConvertFieldsToStaticText приймає два параметри – властивості CompositeNode і перерахування FieldType, цьому методу можна передати будь-який складений вузол. Це дозволяє перетворювати поля в статичний текст лише в певних частинах документа.
Наприклад, ви можете передати об’єкт Document і перетворити поля вказаного типу з усього документа в статичний текст, або ви можете передати об’єкт Body розділу і перетворити лише поля, знайдені в цьому тексті.
Перерахування FieldType, передане методу ConvertFieldsToStaticText, вказує, який тип полів слід перетворити на статичний текст. Будь-який інший тип полів, знайдений у документі, залишиться незмінним.
Наступний приклад коду показує, як вибрати поля певного типу - targetFieldType у певному вузлі - compositeNode, а потім перетворити їх у статичний текст:
Наступний приклад коду показує, як перетворити всі поля IF
у документі в статичний текст:
Наступний приклад коду показує, як перетворити всі поля PAGE
у тексті документа в статичний текст:
Наступний приклад коду показує, як перетворити всі поля IF
в останньому абзаці в статичний текст: