Sostituisci i campi con testo statico

La sostituzione dei campi è spesso necessaria quando desideri salvare il documento come copia statica. Ad esempio, quando si invia come allegato in un’e-mail. La conversione di campi come DATE o TIME in testo statico consentirà al documento di visualizzare la stessa data di quando è stato inviato. Inoltre, in alcune situazioni, potrebbe essere necessario rimuovere i campi IF condizionali dal documento e sostituirli invece con il risultato testuale più recente. Ad esempio, convertendo il risultato del campo IF in testo statico in modo che non cambi più dinamicamente il suo valore quando i campi nel documento vengono aggiornati.

Il diagramma seguente mostra come viene archiviato il campo IF in un documento:

  • il testo è circondato dai nodi dei campi speciali – FieldStart e FieldEnd
  • il nodo FieldSeparator separa il testo all’interno del campo nel codice del campo e nel risultato del campo
  • il codice del campo definisce il comportamento generale del campo, mentre il risultato del campo conserva il risultato più recente quando questo campo viene aggiornato utilizzando Microsoft Word o Aspose.Words
  • il risultato del campo è ciò che viene memorizzato nel campo e visualizzato nel documento quando visualizzato

update-remove-a-field-aspose-words

La struttura può essere vista anche di seguito in forma gerarchica utilizzando progetto dimostrativo “DocumentExplorer”.

update-remove-a-field-aspose-words-2

Campi che non possono essere sostituiti da testo

La sostituzione di un campo con testo statico non funziona correttamente per alcuni campi in un’intestazione o un piè di pagina.

Ad esempio, tentando di convertire il campo PAGE in un’intestazione o un piè di pagina in testo statico, verrà visualizzato lo stesso valore su tutte le pagine. Questo perché intestazioni e piè di pagina vengono ripetuti su più pagine e, quando rimangono come campi, vengono gestiti in modo particolare in modo da visualizzare il risultato corretto per ogni pagina.

Tuttavia, nell’intestazione, il campo PAGE si traduce bene in una sequenza di testo statica. Questa sequenza di testo verrà valutata come se fosse l’ultima pagina della sezione, il che farà sì che qualsiasi campo PAGE nell’intestazione visualizzi l’ultima pagina su tutte le pagine.

L’esempio di codice seguente mostra come sostituire il campo con il risultato più recente:

Converti determinati tipi di campi in parti specifiche del documento

Poiché il metodo ConvertFieldsToStaticText accetta due parametri: le proprietà CompositeNode e l’enumerazione FieldType, è possibile passare qualsiasi nodo composito a questo metodo. Ciò consente di convertire i campi in testo statico solo in parti specifiche del documento.

Ad esempio, puoi passare un oggetto Document e convertire i campi del tipo specificato dall’intero documento in testo statico, oppure puoi passare un oggetto Body di una sezione e convertire solo i campi trovati in quel corpo.

L’enumerazione FieldType passata al metodo ConvertFieldsToStaticText specifica quale tipo di campi devono essere convertiti in testo statico. Qualsiasi altro tipo di campo trovato nel documento rimarrà invariato.

Il seguente esempio di codice mostra come selezionare campi di un tipo specifico – targetFieldType in un nodo specifico – compositeNode e poi convertirli in testo statico:

L’esempio di codice seguente mostra come convertire tutti i campi IF in un documento in testo statico:

L’esempio di codice seguente mostra come convertire tutti i campi PAGE nel corpo di un documento in testo statico:

Il seguente esempio di codice mostra come convertire tutti i campi IF nell’ultimo paragrafo in testo statico: