Lavorare con le sezioni

A volte si desidera un documento che non abbia la stessa formattazione in tutte le pagine. Ad esempio, potrebbe essere necessario modificare i formati dei numeri di pagina, avere dimensioni e orientamento della pagina diversi o avere la prima pagina del documento come copertina senza alcuna numerazione. Puoi farlo 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 sezioni, dividere un documento in sezioni e apportare modifiche di formattazione che si applicano solo a una sezione specifica. Aspose.Words memorizza informazioni sulla formattazione delle sezioni, ad esempio intestazioni e piè di pagina, impostazione della pagina e impostazioni delle colonne nell’interruzione di sezione.

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

Cos’è la sezione e la sezione Break

Le sezioni del documento sono rappresentate dalle classi Section e SectionCollection. Gli oggetti Sezione sono figli immediati del nodo Document e sono accessibili tramite la proprietà Sections. È possibile gestire tali nodi utilizzando alcuni metodi come Remove, Add, IndexOf, e altri.

Section break è un’opzione che divide le pagine del documento in sezioni con layout personalizzabili.

Tipi di interruzione di sezione

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

  • SectionBreakContinuous
  • SectionBreakNewColumn
  • SectionBreakNewPage
  • SectionBreakEvenPage
  • SectionBreakOddPage

È inoltre possibile utilizzare l’enumerazione SectionStart per scegliere un tipo di interruzione che si applica solo alla prima sezione, ad esempio NewColumn, NewPage, EvenPage, e OddPage.

Gestire una sezione

Poiché una sezione è un nodo composito normale, l’intera manipolazione del nodo API può essere utilizzata per manipolare le sezioni: per aggiungere, rimuovere e altre operazioni sulle sezioni. Puoi leggere di più sui nodi nell’articolo Aspose.Words Modello oggetto documento (DOM).

D’altra parte, puoi anche usare DocumentBuilder API per lavorare con le sezioni. In questo articolo, ci concentreremo su questo particolare modo di lavorare con le sezioni.

Inserire o rimuovere un’interruzione di sezione

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

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

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

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 tale sezione. Aspose.Words consente di ottenere una posizione di sezione da un SectionCollection. È possibile utilizzare la proprietà Sections per ottenere tutte le sezioni del documento. Ma se si desidera ottenere solo la prima sezione, è possibile utilizzare la proprietà FirstSection.

Il seguente esempio di codice mostra come accedere alla prima sezione e scorrere i figli di un nodo composito:

Specificare un layout di sezione

A volte vuoi che il tuo documento abbia un aspetto migliore creando layout creativi per diverse sezioni del documento. Se si desidera specificare il tipo della griglia di sezione corrente, è possibile scegliere una modalità di layout di sezione utilizzando l’enumerazione SectionLayoutMode:

  • Predefinito
  • Griglia
  • LineGrid
  • SnapToChars

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

Modificare una sezione

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

L’esempio di codice seguente mostra come preparare un nuovo nodo di sezione usando EnsureMinimum:

Aggiungere o anteporre il contenuto

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

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

Clona una sezione

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

L’esempio di codice seguente mostra come clonare la prima sezione del documento:

Copia sezioni tra documenti

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

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

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

Lavorare con intestazione di sezione e piè di pagina

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

  1. Se la sezione non ha le proprie intestazioni/piè di pagina di un certo tipo, viene presa dalla sezione precedente.
  2. Il tipo di intestazione / piè di pagina visualizzato sulla pagina è controllato dalle impostazioni della sezione" Prima pagina diversa “e” Pagine dispari e pari diverse " – se sono disabilitate, i titoli della sezione vengono ignorati.

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 gli oggetti HeaderFooter nel documento, è possibile utilizzare il metodo ClearHeadersFooters. Inoltre, è possibile utilizzare il metodo DeleteHeaderFooterShapes 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 tutte le intestazioni piè di pagina in una sezione:

Personalizzare le proprietà della pagina in una sezione

Prima di stampare una pagina o un documento, è possibile personalizzare e modificare le dimensioni e il layout di una singola pagina o dell’intero documento. Con impostazione pagina, è possibile modificare le impostazioni delle pagine del documento, ad esempio i margini, l’orientamento e le dimensioni per la stampa di diverse prime pagine o pagine dispari.

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

L’esempio di codice seguente 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