Обновление Fields

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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