Aggiorna campi

In genere, un campo inserito in Microsoft Word contiene già un valore aggiornato. Ad esempio, se il campo è una formula o un numero di pagina, conterrà il valore calcolato corretto per la versione specificata del documento. Ma se si dispone di un’applicazione che genera o modifica un documento con campi come l’unione di due documenti o la compilazione di dati, idealmente tutti i campi devono essere aggiornati affinché il documento sia utile.

Come aggiornare i campi

Quando un documento viene caricato, Aspose.Words imita il comportamento di Microsoft Word con l’opzione per aggiornare automaticamente i campi è disattivata. Il comportamento può essere riassunto come segue:

  • quando si apre / salva un documento i campi rimangono intatti
  • è possibile aggiornare esplicitamente tutti i campi in un documento, ad esempio, ricostruire TOC, quando è necessario
  • quando si esegue il rendering su PDF o XPS, i campi relativi alla numerazione delle pagine nelle intestazioni/piè di pagina vengono aggiornati
  • quando si esegue Mail Merge tutti i campi vengono aggiornati automaticamente

Aggiorna i campi a livello di codice

Per aggiornare esplicitamente i campi nell’intero documento, è sufficiente chiamare il metodo UpdateFields. Per aggiornare i campi contenuti in una parte di un documento, ottenere un oggetto Range e chiamare il metodo UpdateFields. In Aspose.Words, è possibile ottenere un Range per qualsiasi nodo nell’albero del documento, ad esempioSection, HeaderFooter, Paragraph, ecc. utilizzo della proprietà Node.Range.È possibile aggiornare il risultato di un singolo campo chiamando il metodo Update.

Aggiornamento automatico dei campi relativi alla pagina durante il rendering

Quando si esegue la conversione di un documento in un formato a pagina fissa, ad esempio in PDF o XPS, Aspose.Words aggiornerà automaticamente i campi relativi al layout di pagina PAGE, PAGEREF trovati nelle intestazioni/piè di pagina del documento. Questo comportamento imita il comportamento di Microsoft Word durante la stampa di un documento.

Se si desidera aggiornare tutti gli altri campi del documento, è necessario chiamare UpdateFields prima di eseguire il rendering del documento.

L’esempio di codice seguente mostra come aggiornare tutti i campi prima di eseguire il rendering di un documento:

Aggiornamento automatico del campo durante Mail Merge

Quando si esegue un mail merge, tutti i campi del documento verranno aggiornati automaticamente. Questo perché Mail Merge è un caso di aggiornamento del campo. Il programma incontra un campo Mail Merge e deve aggiornare il suo risultato, il che comporta l’acquisizione del valore dall’origine dati e l’inserimento nel campo. La logica è ovviamente più complicata, ad esempio, quando viene raggiunta la fine della regione document/mail merge ma ci sono ancora altri dati da unire, quindi la regione deve essere duplicata e il nuovo set di campi aggiornato.

Aggiorna LastSavedTime Proprietà prima di salvare

È possibile utilizzare la proprietà UpdateLastSavedTimeProperty se aggiornare la corrispondente proprietà predefinita del documento LastSavedTime durante il salvataggio del documento.

L’esempio di codice seguente mostra come aggiornare questa proprietà: