Обновление 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
Когда вы выполняете mail merge Все поля в документе будут автоматически обновлены. Это потому, что Mail Merge Это случай обновления поля. Программа сталкивается с a Mail Merge поле и нуждается в обновлении своего результата, что предполагает захват значения из источника данных и вставку его в поле. Логика, конечно, сложнее, например, когда конец документа.mail merge Регион достигнут, но есть еще дополнительные данные для объединения, затем регион должен быть дублирован и обновлен новый набор полей.
Обновление полей с грязным атрибутом
W:dirty - это атрибут уровня поля, который обновляет только поле, которое вы указываете при открытии документа. MS Word будет обновлять это поле только при открытии документа. Вы можете использовать update_dirty_fields свойство указывать, обновлять ли поля с грязным атрибутом. Когда ценность Обновление_dirty_fields устанавливается True
Все поля имеют True
ценность для Field.is_dirty или FieldChar.is_dirty Имущество обновляется при загрузке документов.
Следующий пример кода показывает, как обновить поля с грязным атрибутом:
Обновление свойств LastSavedTime перед экономией
Вы можете использовать SaveOptions.update_last_saved_time_property Обновить ли соответствующий встроенный документ имущество last_saved_time При сохранении документа.
Следующий пример кода показывает, как обновить это свойство: