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

Замена полей часто требуется, когда вы хотите сохранить документ в виде статической копии. Например, при отправке в качестве вложения в электронное письмо. Преобразование полей, таких как DATE или TIME Статический текст позволяет отображать ту же дату, что и при отправке. Кроме того, в некоторых ситуациях вам может потребоваться удалить условное IF Поля из вашего документа и заменить их с последним результатом текста. Например, преобразование результата IF От поля к статическому тексту, так что он больше не будет динамически изменять свое значение при обновлении полей в документе.

Диаграмма ниже показывает, как IF Поле хранится в документе:

  • текст окружен специальными полевыми узлами - FieldStart и FieldEnd
  • FieldSeparator Узел разделяет текст в поле на код поля и результат поля
  • код поля определяет общее поведение поля, в то время как результат поля сохраняет самый последний результат при обновлении этого поля с использованием Microsoft Word или Aspose.Words
  • Результат поля - это то, что хранится в поле и отображается в документе при просмотре

update-remove-a-field-aspose-words

Структуру также можно увидеть ниже в иерархической форме. демонстрационный проект * “Исследователь документов”*.

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

Поля, которые нельзя заменить текстом

Замена поля статичным текстом не работает должным образом для некоторых полей в заголовке или футере.

Например, пытаясь преобразовать PAGE поле в заголовке или футере к статическому тексту приведет к тому, что одинаковое значение будет отображаться на всех страницах. Это связано с тем, что заголовки и нижние колонтитулы повторяются на нескольких страницах, и когда они остаются в виде полей, они обрабатываются, особенно когда они отображают правильный результат для каждой страницы.

Однако в заголовке, PAGE Поле хорошо переводится в статический поток текста. Этот прогон текста будет оцениваться так, как если бы он был последней страницей в разделе, что приведет к тому, что любой PAGE поле в заголовке для отображения последней страницы на всех страницах.

Следующий пример кода показывает, как заменить поле с его последним результатом:

Преобразование определенных типов полей в конкретные части документов

С тех пор ConvertFieldsToStaticText Метод принимает два параметра – CompositeNode свойств и их FieldType Перечисляя, можно передать любой композитный узел этому способу. Это позволяет конвертировать поля в статический текст только в определенных частях документа.

Например, вы можете пройти Document объект и преобразовать поля указанного типа из всего документа в статический текст, либо можно пройти Body объект сечения и преобразует только поля, находящиеся в этом теле.

The FieldType Перечисление передано в ConvertFieldsToStaticText Метод определяет, какие поля должны быть преобразованы в статический текст. Любой другой тип поля, найденный в документе, останется неизменным.

Следующий пример кода показывает, как выбрать поля определенного типа: targetFieldType в конкретном узле – compositeNode Преобразуйте их в статический текст:

Следующий пример показывает, как конвертировать все IF поля в документе к статическому тексту:

Следующий пример показывает, как конвертировать все PAGE поля в теле документа к статическому тексту:

Следующий пример показывает, как конвертировать все IF поля в последнем абзаце к статическому тексту: