Sostituire i campi con testo statico
La sostituzione dei campi è spesso necessaria quando si desidera salvare il documento come copia statica. Ad esempio, quando si invia come allegato in una 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 condizionali IF
dal documento e sostituirli con il risultato di testo più recente. Ad esempio, convertendo il risultato del campo IF
in testo statico in modo che non modifichi più dinamicamente il suo valore quando i campi nel documento vengono aggiornati.
Il diagramma seguente mostra come il campo IF
è memorizzato in un documento:
- il testo è circondato dai nodi di campo 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 mantiene 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 viene visualizzato
La struttura può anche essere vista sotto in forma gerarchica usando il progetto demo “DocumentExplorer”, che viene fornito con il programma di installazione Aspose.Words.
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 in un piè di pagina.
Ad esempio, il tentativo di convertire il campo PAGE
in un’intestazione o piè di pagina in testo statico comporterà la visualizzazione dello stesso valore in 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 esecuzione statica del testo. Questa esecuzione 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.
Il seguente esempio di codice mostra come sostituire il campo con il risultato più recente:
Convertire alcuni tipi di campo 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 ai campi di essere convertiti in testo statico solo in parti specifiche del documento.
Ad esempio, è possibile passare un oggetto Document e convertire i campi del tipo specificato dall’intero documento in testo statico, oppure è possibile passare un oggetto Body di una sezione e convertire solo i campi trovati in quel corpo.
L’enumerazione FieldType passata al metodo ConvertFieldsToStaticText specifica il tipo di campi da convertire in testo statico. Qualsiasi altro tipo di campo trovato nel documento rimarrà invariato.
L’esempio di codice seguente mostra come selezionare campi di un tipo specifico- targetFieldType in un nodo specifico - compositeNode e quindi 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
in un corpo di un documento in testo statico:
L’esempio di codice seguente mostra come convertire tutti i campi IF
nell’ultimo paragrafo in testo statico: