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 specifica del documento. Ma se hai un’applicazione che genera o modifica un documento con campi come unire due documenti o popolarlo con dati, allora 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 di aggiornare automaticamente i campi disattivata. Il comportamento può essere così riassunto:
- quando apri/salvi un documento i campi rimangono intatti
- puoi aggiornare esplicitamente tutti i campi in un documento (ad esempio ricostruire il sommario) quando necessario
- quando si stampa/esegui il rendering in PDF o XPS i campi relativi alla numerazione delle pagine nelle intestazioni/piè di pagina vengono aggiornati
- quando esegui mail merge tutti i campi vengono aggiornati automaticamente
Aggiorna i campi a livello di codice
Per aggiornare esplicitamente i campi nell’intero documento, chiama semplicemente update_fields. Per aggiornare i campi contenuti in una parte di un documento, ottenere un oggetto Range e chiamare il metodo update_fields. In Aspose.Words, puoi ottenere un Range per qualsiasi nodo nell’albero del documento, come Section, HeaderFooter, Paragraph, ecc. utilizzando la 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 esegui 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 desideri aggiornare tutti gli altri campi nel documento, devi chiamare update_fields prima di eseguire il rendering del documento.
Il seguente esempio di codice mostra come aggiornare tutti i campi prima di eseguire il rendering di un documento:
Aggiornamento automatico dei campi durante Mail Merge
Quando esegui un mail merge, tutti i campi del documento verranno aggiornati automaticamente. Questo perché il mail merge è un caso di aggiornamento sul campo. Il programma rileva un campo mail merge e deve aggiornarne il risultato, il che comporta il prelievo del valore dall’origine dati e l’inserimento nel campo. La logica è ovviamente più complicata, ad esempio, quando viene raggiunta la fine della regione del documento/mail merge ma ci sono ancora altri dati da unire, allora la regione deve essere duplicata e il nuovo set di campi aggiornato.
Aggiorna i campi con attributo sporco
w:dirty è un attributo a livello di campo che aggiornerà solo il campo specificato all’apertura del documento. Indica a MS Word di aggiornare questo campo solo la prossima volta che il documento viene aperto. È possibile utilizzare la proprietà update_dirty_fields per specificare se aggiornare i campi con l’attributo dirty. Quando il valore di update_dirty_fields è impostato su True
, tutti i campi con valore True
per la proprietà Field.is_dirty o FieldChar.is_dirty vengono aggiornati al caricamento del documento.
Il seguente esempio di codice mostra come aggiornare i campi con l’attributo dirty:
Aggiorna la proprietà LastSavedTime prima di salvare
È possibile utilizzare la proprietà SaveOptions.update_last_saved_time_property per aggiornare la proprietà del documento incorporata corrispondente last_saved_time durante il salvataggio del documento.
L’esempio di codice seguente mostra come aggiornare questa proprietà: