Lavorare con le sezioni

A volte si desidera un documento che non ha la stessa formattazione in tutte le pagine. Ad esempio, potrebbe essere necessario modificare i formati di numero di pagina, avere dimensioni e orientamento differenti della pagina, o avere la prima pagina del documento come una pagina di copertura senza alcuna numerazione. Si può raggiungere questo con le sezioni.

Le sezioni sono nodi di livello che controllano intestazioni e piè di pagina, orientamento, colonne, margini, formattazione del numero di pagina e altri.

Aspose.Words consente di gestire le sezioni, dividere un documento in sezioni, e fare modifiche di formattazione che si applicano solo a una sezione specifica. Aspose.Words memorizza le informazioni sulla formattazione della sezione come intestazioni e piè di pagina, la configurazione della pagina e le impostazioni della colonna nella pausa sezione.

Questo articolo spiega come lavorare con sezioni e interruzioni di sezione.

Qual è la sezione e la divisione

Le sezioni dei documenti sono rappresentate da Section e SectionCollection classi. Gli oggetti di sezione sono figli immediati del Document nodo e accessibile tramite il Sections proprieta'. È possibile gestire questi nodi utilizzando alcuni metodi come Remove, Add, IndexOf, e altri.

L’interruzione di sezione è un’opzione che divide le pagine dei documenti in sezioni con layout personalizzabili.

Tipi di una rottura di sezione

Aspose.Words consente di dividere e formattare documenti utilizzando diverse interruzioni di sezione del BreakType enumerazione:

  • SezioneBreakContinuo
  • SezioneBreakNewColumn
  • SezioneBreakNewPage
  • SezioneBreakEvenPage
  • SezioneBreakOddPage

È anche possibile utilizzare SectionStart enumerazione per scegliere un tipo di pausa che si applica solo per la prima sezione come NewColumn, NewPage, EvenPage e OddPage.

Gestione di una sezione

Poiché una sezione è un nodo composito normale, l’intera manipolazione del nodo API può essere utilizzato per manipolare le sezioni: per aggiungere, rimuovere e altre operazioni su sezioni. Si può leggere di più sui nodi nell’articolo Aspose.Words Document Object Model (DOM).

D’altra parte, è anche possibile utilizzare il DocumentBuilder API lavorare con le sezioni. In questo articolo, ci concentreremo su questo particolare modo di lavorare con le sezioni.

Inserire o rimuovere una rottura di sezione

Aspose.Words consente di inserire un’interruzione di sezione nel testo utilizzando il InsertBreak metodo.

Il seguente esempio di codice mostra come inserire un’interruzione di sezione in un documento:

Utilizzare Remove metodo per eliminare una pausa sezione. Se non è necessario rimuovere una specifica pausa di sezione e invece eliminare il contenuto di quella sezione, è possibile utilizzare il ClearContent metodo.

Il seguente esempio di codice mostra come rimuovere le interruzioni delle sezioni:

Spostare una sezione

Se si desidera spostare una sezione da una posizione all’altra nel documento, è necessario ottenere l’indice di quella sezione. Aspose.Words consente di ottenere una posizione sezione da una SectionCollection. È possibile utilizzare Sections proprietà per ottenere tutte le sezioni nel documento. Ma se si desidera ottenere solo la prima sezione, è possibile utilizzare il FirstSection proprieta'.

Il seguente esempio di codice mostra come accedere alla prima sezione e iterare attraverso i bambini di un nodo composito:

Specificare un layout di sezione

A volte si desidera che il documento cerchi meglio facendo layout creativi per diverse sezioni di documenti. Se si desidera specificare il tipo di griglia della sezione corrente, è possibile scegliere una modalità di layout della sezione utilizzando la SectionLayoutMode enumerazione:

  • Predefinito
  • Griglia
  • LineGrid
  • SnapToChars

Il seguente esempio di codice mostra come limitare il numero di righe che ogni pagina può avere:

Modifica della sezione

Quando si aggiunge una nuova sezione al documento, non ci sarà corpo o paragrafo che è possibile modificare. Aspose.Words consente di garantire che una sezione contenga un corpo con almeno un paragrafo utilizzando EnsureMinimum metodo – aggiungerà automaticamente un nodo Corpo (o HeaderFooter) al documento e aggiungerà un Paragrafo ad esso.

Il seguente esempio di codice mostra come preparare un nuovo nodo di sezione utilizzando EnsureMinimum:

Contenuto allegato o anticipato

Se si desidera disegnare qualche forma o aggiungere testo o immagine all’inizio / fine di una sezione, è possibile utilizzare AppendContent e PrependContent metodi di Section classe.

Il seguente esempio di codice mostra come applicare il contenuto di una sezione esistente:

Clone a Sezione

Aspose.Words consente di duplicare una sezione creando una copia completa di esso utilizzando il deepClone metodo.

Il seguente esempio di codice mostra come clonare la prima sezione nel documento:

Copia sezioni tra documenti

In alcuni casi, si possono avere grandi documenti con molte sezioni e si desidera copiare il contenuto di una sezione da un documento all’altro.

Aspose.Words consente di copiare le sezioni tra i documenti utilizzando ImportNode metodo.

Il seguente esempio di codice mostra come copiare le sezioni tra i documenti:

Lavorare con intestazione e piè di sezione

Le regole di base per la visualizzazione di un intestazione o piè di pagina per ogni sezione sono abbastanza semplici:

  1. Se la sezione non ha le proprie intestazioni / piedi di un certo tipo, allora è preso dalla sezione precedente.
  2. Il tipo di intestazione/footer visualizzato sulla pagina è controllato dalle impostazioni della sezione “Different First Page” e “Different Odd & Even pages” – se disattivate, vengono ignorati i titoli della sezione.

Il seguente esempio di codice mostra come creare 2 sezioni con intestazioni diverse:

Se si desidera rimuovere il testo di intestazioni e piè di pagina senza rimuovere HeaderFooter oggetti nel documento, è possibile utilizzare ClearHeadersFooters metodo. Inoltre, è possibile utilizzare il DeleteHeaderFooterShapes metodo per rimuovere tutte le forme da intestazioni e piè di pagina nel documento.

Il seguente esempio di codice mostra come cancellare il contenuto di tutte le intestazioni e piè di pagina in una sezione:

Il seguente esempio di codice come rimuovere tutte le forme da tutti i piè di intestazione in una sezione:

Personalizza Proprietà della pagina in una sezione

Prima di stampare una pagina o un documento si può desiderare di personalizzare e modificare la dimensione e il layout di una singola pagina o l’intero documento. Con l’impostazione della pagina, è possibile modificare le impostazioni delle pagine dei documenti come margini, orientamento e dimensione per la stampa di diverse prime pagine o pagine dispari.

Aspose.Words consente di personalizzare le proprietà di pagina e sezione utilizzando PageSetup classe.

Il seguente esempio di codice mostra come impostare tali proprietà come dimensione della pagina e orientamento per la sezione corrente:

Il seguente esempio di codice mostra come modificare le proprietà della pagina in tutte le sezioni:

Vedi anche