Lavorare con Table of Contents
Spesso si lavora con documenti contenenti un sommario (TOC). Utilizzando Aspose.Words è possibile inserire il proprio sommario o ricostruire completamente il sommario esistente nel documento utilizzando solo poche righe di codice.
In questo articolo viene illustrato come utilizzare il campo sommario e viene illustrato:
- Come inserire un nuovo TOC.
- Aggiornare TOCs nuovo o esistente nel documento.
- Specificare le opzioni per controllare la formattazione e la struttura complessiva di TOC.
- Come modificare gli stili e l’aspetto del sommario.
- Come rimuovere un intero campo
TOC
insieme a tutte le voci dal documento.
Inserire il sommario a livello di programmazione
È possibile inserire un campo TOC
(sommario) nel documento nella posizione corrente chiamando il metodo InsertTableOfContents.
Un sommario in un documento di Word può essere costruito in diversi modi e formattato utilizzando una varietà di opzioni. Gli interruttori di campo che si passa al metodo controllano il modo in cui la tabella viene creata e visualizzata nel documento.
Gli switch predefiniti utilizzati in un TOC
inserito in Microsoft Word sono "\o “1-3 \h \z \u”. Le descrizioni di questi switch e un elenco di switch supportati possono essere trovate più avanti nell’articolo. È possibile utilizzare tale guida per ottenere gli switch corretti o se si dispone già di un documento contenente il TOC
simile che si desidera, è possibile mostrare i codici di campo (ALT+F9) e copiare gli switch direttamente dal campo.
Nell’esempio di codice seguente viene illustrato come inserire un campo Sommario in un documento:
Nell’esempio di codice seguente viene illustrato come inserire un sommario (TOC ) in un documento utilizzando gli stili di intestazione come voci:
Il codice dimostra che il nuovo sommario è inserito in un documento vuoto. La classe DocumentBuilder viene quindi utilizzata per inserire alcuni esempi di formattazione del contenuto con gli stili di intestazione appropriati che vengono utilizzati per contrassegnare il contenuto da includere nel TOC. Le righe successive popolano quindi TOC
aggiornando i campi e il layout di pagina del documento.
TOC
, ma senza contenuto visibile. Questo perché il campo TOC
è stato inserito ma non è ancora popolato fino a quando non viene aggiornato nel documento. Ulteriori informazioni su questo è discusso nella prossima sezione.
Aggiorna Indice
Aspose.Words consente di aggiornare completamente un TOC
con poche righe di codice. Questo può essere fatto per popolare un nuovo inserito TOC
o per aggiornare un esistente TOC
dopo che sono state apportate modifiche al documento.
I seguenti due metodi devono essere utilizzati per aggiornare i campi TOC
nel documento:
Si prega di notare che questi due metodi di aggiornamento devono essere chiamati in questo ordine. Se invertito il sommario verrà popolato ma non verranno visualizzati numeri di pagina. È possibile aggiornare qualsiasi numero di TOCs diversi. Questi metodi aggiorneranno automaticamente tutti i TOCs trovati nel documento.
L’esempio di codice seguente mostra come ricostruire completamente i campi TOC
nel documento richiamando gli aggiornamenti dei campi:
La prima chiamata a Document.updateFields() costruirà il TOC
, tutte le voci di testo sono popolate e il TOC
appare quasi completo. L’unica cosa che manca sono i numeri di pagina che per ora vengono visualizzati con “?”.
La seconda chiamata a Document.updatePageLayout() costruirà il layout del documento in memoria. Questo deve essere fatto per raccogliere i numeri di pagina delle voci. I numeri di pagina corretti calcolati da questa chiamata vengono quindi inseriti in TOC.
Utilizzare gli switch per controllare il comportamento dell’indice
Come con qualsiasi altro campo, il campo TOC
può accettare gli switch definiti all’interno del codice del campo che controlla il modo in cui viene creato il sommario. Alcuni switch sono usati per controllare quali voci sono incluse e a quale livello, mentre altri sono usati per controllare l’aspetto del TOC. Gli interruttori possono essere combinati insieme per consentire la produzione di un complesso sommario.
Per impostazione predefinita, queste opzioni di cui sopra sono incluse quando si inserisce un valore predefinito TOC
nel documento. Un TOC
senza opzioni includerà il contenuto degli stili di intestazione incorporati (come se l’opzione \O fosse impostata).
Gli switch TOC
disponibili supportati da Aspose.Words sono elencati di seguito e i loro usi sono descritti in dettaglio. Possono essere suddivisi in sezioni separate in base al loro tipo. Gli switch nella prima sezione definiscono il contenuto da includere nel TOC
e gli switch nella seconda sezione controllano l’aspetto del TOC.
Se uno switch non è elencato qui, al momento non è supportato. Tutti gli switch saranno supportati nelle versioni future. Stiamo aggiungendo ulteriore supporto ad ogni versione.
Interruttori di marcatura di ingresso
Switch | Descrizione |
---|---|
Heading Styles * (\O Interruttore)* |
Questo interruttore definisce che il
|
Outline Levels * (\U interruttore)* |
Ogni paragrafo può definire un livello di struttura in Opzioni paragrafo.
Si noti che gli stili di intestazione incorporati come Heading 1 hanno un livello di struttura obbligatorio impostato nelle impostazioni di stile.
|
Custom Styles * (\T interruttore)* |
Questa opzione consentirà di utilizzare stili personalizzati quando si raccolgono voci da utilizzare nel TOC. Questo è spesso usato in combinazione con l’opzione \O per includere stili personalizzati insieme agli stili di intestazione incorporati nel TOC.
userà il contenuto in stile con CustomHeading1 come contenuto di livello 1 in |
Usa TC Campi * (\F e \ L interruttori)* |
Nelle versioni precedenti di Microsoft Word, l’unico modo per creare un Questi campi possono essere inseriti in un documento in qualsiasi posizione come qualsiasi altro campo e sono rappresentati dall’enumerazione
includerà solo campi TC come
Il campo
– \ F-Spiegato sopra. – \ L-Definisce in quale livello nel - |
Interruttori relativi all’aspetto
Switch | Descrizione |
---|---|
Omit Page Numbers * (\N Interruttore)* |
Questa opzione viene utilizzata per nascondere i numeri di pagina per determinati livelli di TOC. Ad esempio, è possibile definire
e i numeri di pagina sulle voci dei livelli 3 e quattro saranno nascosti insieme ai punti leader (se ce ne sono). Per specificare un solo livello, è comunque necessario utilizzare un intervallo, ad esempio “1-1” escluderà i numeri di pagina solo per il primo livello. |
Inserisci come collegamenti ipertestuali * (\H Interruttore)* |
Questa opzione specifica che le voci |
Set Separator Character * (\P Interruttore)* |
Questa opzione consente di modificare facilmente il contenuto che separa il titolo della voce e la numerazione delle pagine in TOC. Il separatore da utilizzare deve essere specificato dopo questo interruttore e racchiuso in segni vocali. |
Preserve Tab Entries * (\W Interruttore)* |
L’uso di questo interruttore specificherà che tutte le voci che hanno un carattere di tabulazione, ad esempio, un’intestazione che ha una tabulazione alla fine della riga, verranno mantenute come un carattere di tabulazione corretto quando si popola il TOC. Ciò significa che la funzione del carattere tab sarà presente in |
Preserve New Line Entries * (\X Interruttore)* |
Simile allo switch sopra, questo switch specifica che le intestazioni che si estendono su più righe (usando caratteri di nuova riga, non paragrafi separati) verranno conservate come sono nel TOC generato. Ad esempio, un’intestazione che deve essere distribuita su più righe può utilizzare il carattere nuova riga (Ctrl + Invio o |
Inserisci TC Campi
È possibile inserire un nuovo campo TC nella posizione corrente del DocumentBuilder
chiamando il metodo DocumentBuilder.InsertField
e specificando il nome del campo come “TC” insieme agli eventuali switch necessari.
Il seguente esempio di codice mostra come inserire un campo TC
nel documento utilizzando DocumentBuilder.
Spesso una riga di testo specifica è designata per TOC
ed è contrassegnata con un campo TC
. Il modo più semplice per farlo in MS Word è evidenziare il testo e premere ALT+SHIFT+O. Questo crea automaticamente un campo TC
utilizzando il testo selezionato. La stessa tecnica può essere realizzata attraverso il codice. Il codice sottostante troverà il testo corrispondente all’input e inserirà un campo TC
nella stessa posizione del testo. Il codice si basa sulla stessa tecnica utilizzata nell’articolo. L’esempio di codice seguente mostra come trovare e inserire un campo TC
nel testo di un documento.
Modificare un sommario
Modificare la formattazione degli stili
La formattazione delle voci nel TOC
non utilizza gli stili originali delle voci contrassegnate, invece, ogni livello viene formattato utilizzando uno stile TOC
equivalente. Ad esempio, il primo livello in TOC
è formattato con lo stile TOC1, il secondo livello formattato con lo stile TOC2 e così via. Ciò significa che per cambiare l’aspetto del TOC
questi stili devono essere modificati. In Aspose.Words questi stili sono rappresentati dal locale-independent StyleIdentifier.TOC1
fino a StyleIdentifier.TOC9
e possono essere recuperati dalla raccolta Document.Styles
utilizzando questi identificatori.
Una volta recuperato lo stile appropriato del documento, la formattazione per questo stile può essere modificata. Qualsiasi modifica a questi stili verrà automaticamente riflessa in TOCs nel documento.
L’esempio di codice seguente modifica una proprietà di formattazione utilizzata nello stile di primo livello TOC
.
È anche utile notare che qualsiasi formattazione diretta di un paragrafo (definita sul paragrafo stesso e non nello stile) contrassegnata per essere inclusa nel TOC
verrà copiata nella voce nel TOC. Ad esempio, se lo stile Heading 1 viene utilizzato per contrassegnare il contenuto per TOC
e questo stile ha una formattazione in grassetto mentre il paragrafo ha anche una formattazione in corsivo applicata direttamente ad esso. La voce risultante TOC
non sarà in grassetto poiché fa parte della formattazione dello stile, tuttavia sarà in corsivo poiché è formattata direttamente nel paragrafo.
È inoltre possibile controllare la formattazione dei separatori utilizzati tra ogni voce e il numero di pagina. Per impostazione predefinita, si tratta di una linea tratteggiata che viene distribuita sulla numerazione delle pagine utilizzando un carattere di tabulazione e un punto di tabulazione destro allineato vicino al margine destro.
Utilizzando la classe Style
recuperata per il particolare livello TOC
che si desidera modificare, è anche possibile modificare il modo in cui questi appaiono nel documento.
Per cambiare il modo in cui appare in primo luogo, è necessario chiamare Style.ParagraphFormat
per recuperare la formattazione del paragrafo per lo stile. Da questo, i tab stop possono essere recuperati chiamando ParagraphFormat.TabStops
e il tab stop appropriato modificato. Utilizzando questa stessa tecnica la scheda stessa può essere spostata o rimossa del tutto.
L’esempio di codice seguente mostra come modificare la posizione dell’arresto di tabulazione destro nei paragrafi correlati a TOC
.
Rimuovere un sommario dal documento
Un sommario può essere rimosso dal documento rimuovendo tutti i nodi trovati tra il nodo FieldStart
e FieldEnd del campo TOC
.
Il codice qui sotto lo dimostra. La rimozione del campo TOC
è più semplice di un campo normale in quanto non teniamo traccia dei campi nidificati. Invece, controlliamo che il nodo FieldEnd
sia di tipo FieldType.FieldTOC
, il che significa che abbiamo incontrato la fine dell’attuale TOC. Questa tecnica può essere utilizzata in questo caso senza preoccuparsi di alcun campo nidificato in quanto possiamo supporre che qualsiasi documento formato correttamente non avrà un campo TOC
completamente annidato all’interno di un altro campo TOC
.
In primo luogo i nodi FieldStart
di ciascun TOC
vengono raccolti e memorizzati. Il TOC
specificato viene quindi enumerato in modo che tutti i nodi all’interno del campo vengano visitati e archiviati. I nodi vengono quindi rimossi dal documento. Nell’esempio di codice seguente viene illustrato come rimuovere un TOC
specificato da un documento.
Estratto Sommario
Se si desidera estrarre un sommario da qualsiasi documento di Word, è possibile utilizzare il seguente esempio di codice.