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
La struttura può essere vista anche di seguito in forma gerarchica utilizzando progetto dimostrativo “DocumentExplorer”.
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: