Обновление Fields

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

Как обновить поля

Когда документ загружается, Aspose.Words имитирует поведение Microsoft Word с возможностью автоматического обновления полей отключается. Поведение можно резюмировать следующим образом:

  • Когда вы открываете/сохраняете документ, поля остаются нетронутыми
  • Вы можете явно обновить все поля в документе (например, восстановить TOC), когда вам нужно
  • когда вы печатаете/сдаете в PDF или XPS Обновляются поля, связанные с нумерацией страниц в заголовках/футерах
  • когда вы выполняете mail merge Все поля обновляются автоматически

Обновление полей программно

Чтобы явно обновить поля во всем документе, просто позвоните update_fields. Для обновления полей, содержащихся в части документа, получить Range объект и вызвать update_fields метод. в Aspose.Words, Вы можете получить a Range для любого узла в дереве документа, такого как Section, HeaderFooter, Paragraph, и т.д. используя Node.range собственность. Вы можете обновить результат одного поля, позвонив в update метод.

Автоматическое обновление полей, связанных со страницами, во время рендеринга

Когда вы выполняете преобразование документа в формат фиксированной страницы, например, в PDF или XPS, затем Aspose.Words будет автоматически обновлять поля, связанные с макетом страницы PAGE, PAGEREF в заголовках/футерах документа. Это поведение имитирует поведение Microsoft Word При печати документа.

Если вы хотите обновить все остальные поля в документе, то вам нужно позвонить update_fields перед оформлением документа.

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

Автоматическое обновление поля во время Mail Merge

Когда вы выполняете <p notrans="<p notrans=" mail merge"="">

"> Все поля в документе будут автоматически обновлены. Это потому, что mail merge Это случай обновления поля. Программа сталкивается с a mail merge поле и нуждается в обновлении своего результата, что предполагает захват значения из источника данных и вставку его в поле. Логика, конечно, сложнее, например, когда конец документа.mail merge Регион достигнут, но есть еще дополнительные данные для объединения, затем регион должен быть дублирован и обновлен новый набор полей.

Обновление полей с грязным атрибутом

W:dirty - это атрибут уровня поля, который обновляет только поле, которое вы указываете при открытии документа. MS Word будет обновлять это поле только при открытии документа. Вы можете использовать update_dirty_fields свойство указывать, обновлять ли поля с грязным атрибутом. Когда ценность Обновление_dirty_fields устанавливается <p notrans="<p notrans=" True"="">

"> Все поля имеют True ценность для Field.is_dirty или FieldChar.is_dirty Имущество обновляется при загрузке документов.

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

Обновление свойств LastSavedTime перед экономией

Вы можете использовать SaveOptions.update_last_saved_time_property Обновить ли соответствующий встроенный документ имущество last_saved_time При сохранении документа.

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