Оновлювати поля

Як правило, поле, вставлене в Microsoft Word, вже містить актуальне значення. Наприклад, якщо поле є формулою або номером сторінки, воно буде містити правильне обчислене значення для даної версії документа. Але якщо у вас є програма, яка генерує або змінює документ з полями, наприклад, об’єднує два документи або заповнює його даними, то в ідеалі всі поля повинні бути оновлені, щоб документ був корисним.

Як оновити поля

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

  • коли ви відкриваєте / зберігаєте документ, поля залишаються недоторканими
  • ви можете явно оновити всі поля в документі, наприклад, відновити TOC, коли Вам потрібно
  • при відображенні в PDF або XPS поля, що відносяться до нумерації сторінок у верхніх і нижніх колонтитулах, оновлюються
  • коли ви виконуєте Mail Merge, усі поля оновлюються автоматично

Оновлювати поля програмним способом

Щоб явно оновити поля у всьому документі, просто викликайте метод UpdateFields. Щоб оновити поля, що містяться в частині документа, отримайте об’єкт Range і викличте метод UpdateFields. У Aspose.Words ви можете отримати значення Range для будь-якого вузла в дереві документа, наприклад Section, HeaderFooter, Paragraph, і т.д., використовуючи властивість Node.Range.Ви можете оновити результат для одного поля, викликавши метод Update.

Автоматичне оновлення полів, пов’язаних зі сторінкою, під час рендеринга

Коли ви виконуєте перетворення документа у формат фіксованої сторінки, наприклад, у PDF або XPS, у Aspose.Words автоматично оновлюються поля, пов’язані з макетом сторінки PAGE, PAGEREF, які знаходяться у верхніх і нижніх колонтитулах документа. Ця поведінка імітує поведінку Microsoft Word під час друку документа.

Якщо ви хочете оновити всі інші поля в документі, вам потрібно викликати UpdateFields перед відображенням документа.

Наступний приклад коду показує, як оновити всі поля перед відтворенням документа:

Автоматичне оновлення поля під час Mail Merge

Коли ви виконуєте mail merge, усі поля в документі будуть автоматично оновлені. Це пов’язано з тим, що Mail Merge - Це випадок оновлення поля. Програма виявляє поле Mail Merge і повинна оновити свій результат, що передбачає отримання значення з джерела даних та вставлення його в поле. Логіка, звичайно, складніша, наприклад, коли досягнуто кінця області документа/mail merge, але все ще є додаткові дані, які потрібно об’єднати, тоді область потрібно продублювати та оновити новий набір полів.

Оновіть властивість LastSavedTime Перед збереженням

Ви можете використовувати властивість UpdateLastSavedTimeProperty для оновлення відповідної вбудованої властивості документа LastSavedTime під час збереження документа.

Наступний приклад коду показує, як оновити цю властивість: