Campi di aggiornamento

Tipicamente, un campo inserito in Microsoft Word già contiene un valore aggiornato. Ad esempio, se il campo è una formula o un numero di pagina, conterrà il valore calcolato corretto per la versione data del documento. Ma se si dispone di un’applicazione che genera o modifica un documento con campi come la fusione di due documenti o la populazione con i dati, allora idealmente tutti i campi devono essere aggiornati per il documento da essere utili.

Come Aggiornare i Campi

Quando un documento viene caricato, Aspose.Words imita il comportamento del Microsoft Word con l’opzione di aggiornare automaticamente i campi è spento. 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 hai bisogno di
  • quando si stampa/render in PDF o XPS i campi relativi alla pagina-numero in intestazioni / piè di pagina sono aggiornati
  • quando si esegue mail merge tutti i campi vengono aggiornati automaticamente

Aggiornare i campi programmaticamente

Per aggiornare esplicitamente i campi nell’intero documento, basta chiamare il UpdateFields metodo. Per aggiornare i campi contenuti in una parte di un documento, ottenere un Range oggetto e chiamare UpdateFields metodo. In Aspose.Words, si può ottenere Range per qualsiasi nodo nell’albero del documento, come Section, HeaderFooter, Paragraph, ecc. utilizzando GetRange proprieta'. È possibile aggiornare il risultato di un singolo campo chiamando il Update metodo.

Aggiornamento automatico dei campi di pagina-relati durante il rendering

Quando si esegue la conversione di un documento in un formato di pagina fissa, ad esempio in PDF o XPS, allora Aspose.Words aggiornerà automaticamente i campi relativi al layout della pagina PAGE, PAGEREF trovato in intestazioni/piedi del documento. Questo comportamento imita il comportamento di Microsoft Word quando si stampa un documento.

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

L’esempio seguente mostra come aggiornare tutti i campi prima di rendere un documento:

Aggiornamento automatico del campo durante Mail Merge

Quando si esegue un <span notrans="<span notrans=" mail merge"="">> tutti i campi del documento verranno automaticamente aggiornati. Questo è perché mail merge è un caso di aggiornamento del campo. Il programma incontra un mail merge campo e ha bisogno di aggiornare il suo risultato, che comporta afferrare il valore dalla fonte di dati e inserendolo nel campo. La logica è, naturalmente, più complicata, per esempio, quando la fine del documento/mail merge la regione è raggiunta ma ci sono ancora ulteriori dati da fondere, quindi la regione deve essere duplicata e il nuovo insieme di campi aggiornati.

Campi di aggiornamento con Dirty Attribute

Il w:dirty è un attributo a livello di campo che aggiornerà solo il campo specificato quando il documento è aperto. Dice a MS Word di aggiornare solo questo campo la prossima volta che il documento è aperto. È possibile utilizzare la proprietà LoadOptions.setUpdateDirtyFields() per specificare se aggiornare i campi con l’attributo sporco. Quando il valore di LoadOptions.setUpdateDirtyFields() è impostato su <span notrans="<span notrans=" true"="">> tutti i campi true valore per Field.IsDirty o FieldChar.IsDirty la proprietà viene aggiornata sul carico del documento

Il seguente esempio di codice mostra come aggiornare i campi con l’attributo sporco:

Aggiornamento LastSavedTime Proprietà prima di salvare

È possibile utilizzare UpdateLastSavedTimeProperty proprietà se aggiornare la proprietà del documento incorporato corrispondente LastSavedTime quando si salva il documento.

Il seguente esempio di codice mostra come aggiornare questa proprietà: