Lavorare con le sezioni
A volte desideri un documento che non abbia la stessa formattazione su tutte le pagine. Ad esempio, potrebbe essere necessario modificare i formati dei numeri di pagina, avere dimensioni e orientamento della pagina diversi oppure avere la prima pagina del documento come copertina senza numerazione. Puoi ottenerlo 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 altro.
Aspose.Words ti consente di gestire sezioni, dividere un documento in sezioni e apportare modifiche alla formattazione che si applicano solo a una sezione specifica. Aspose.Words memorizza informazioni sulla formattazione della sezione come intestazioni e piè di pagina, impostazione della pagina e impostazioni delle colonne nell’interruzione di sezione.
Questo articolo spiega come lavorare con le sezioni e le interruzioni di sezione.
Cosa sono la sezione e l’interruzione di sezione
Le sezioni del documento sono rappresentate dalle classi Section e SectionCollection. Gli oggetti sezione sono figli immediati del nodo Document ed è possibile accedervi tramite la proprietà Sections. Puoi gestire questi nodi utilizzando alcuni metodi come Remove, Add, IndexOf e altri.
L’interruzione di sezione è un’opzione che divide le pagine del documento in sezioni con layout personalizzabili.
Tipi di interruzione di sezione
Aspose.Words ti consente di dividere e formattare i documenti utilizzando diverse interruzioni di sezione dell’enumerazione BreakType:
- Sezione Interrompi Continua
- SezioneInterrompiNuovaColonna
- SezioneInterruzioneNuovaPagina
- SezioneBreakEvenPagina
- SezioneInterruzioneDispariPagina
Puoi anche utilizzare l’enumerazione SectionStart per scegliere un tipo di interruzione applicabile solo alla prima sezione, ad esempio NewColumn, NewPage, EvenPage e OddPage.
Gestisci una sezione
Poiché una sezione è un normale nodo composito, l’intero API di manipolazione del nodo può essere utilizzato per manipolare le sezioni: aggiungere, rimuovere e altre operazioni sulle sezioni. Puoi leggere ulteriori informazioni sui nodi nell’articolo Aspose.Words Document Object Model (DOM).
D’altra parte è anche possibile utilizzare DocumentBuilder
API per lavorare con le sezioni. In questo articolo ci concentreremo su questo particolare modo di lavorare con le sezioni.
Inserisci o rimuovi un’interruzione di sezione
Aspose.Words ti 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 ed eliminare invece il contenuto di quella sezione, è possibile utilizzare il metodo ClearContent.
L’esempio di codice seguente mostra come rimuovere le interruzioni di sezione:
Sposta una sezione
Se vuoi spostare una sezione da una posizione a un’altra nel tuo documento, devi ottenere l’indice di quella sezione. Aspose.Words ti consente di ottenere la posizione di una sezione da un SectionCollection. Puoi utilizzare la proprietà Sections per ottenere tutte le sezioni del tuo documento. Ma se vuoi ottenere solo la prima sezione, puoi utilizzare la proprietà FirstSection.
L’esempio di codice seguente mostra come accedere alla prima sezione e scorrere i figli di un nodo composito:
Specificare un layout di sezione
A volte desideri che il tuo documento abbia un aspetto migliore creando layout creativi per le diverse sezioni del documento. Se desideri specificare il tipo di griglia della sezione corrente, puoi scegliere una modalità di layout della sezione utilizzando l’enumerazione SectionLayoutMode:
- Predefinito
- Griglia -Griglia di linee
- SnapToChars
Il seguente esempio di codice mostra come limitare il numero di righe che ogni pagina può avere:
Modifica una sezione
Quando aggiungi una nuova sezione al tuo documento, non ci sarà corpo o paragrafo che puoi modificare. Aspose.Words ti 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.
Il seguente esempio di codice mostra come preparare un nuovo nodo di sezione utilizzando EnsureMinimum:
Aggiungi o anteponi contenuto
Se vuoi disegnare una forma o aggiungere testo o immagine all’inizio/fine di una sezione, puoi utilizzare i metodi AppendContent e PrependContent della classe Section.
L’esempio di codice seguente mostra come aggiungere il contenuto di una sezione esistente:
Clonare una sezione
Aspose.Words ti consente di duplicare una sezione creandone una copia completa utilizzando il metodo Clone.
Il seguente esempio di codice mostra come clonare la prima sezione del documento:
Copia sezioni tra documenti
In alcuni casi, potresti avere documenti di grandi dimensioni con molte sezioni e desideri copiare il contenuto di una sezione da un documento a un altro.
Aspose.Words ti consente di copiare sezioni tra documenti utilizzando il metodo ImportNode.
L’esempio di codice seguente mostra come copiare sezioni tra documenti:
Lavora con l’intestazione e il piè di pagina della sezione
Le regole di base per visualizzare un’intestazione o un piè di pagina per ciascuna sezione sono abbastanza semplici:
- Se la sezione non ha intestazioni/piè di pagina propri di un certo tipo, viene presa dalla sezione precedente.
- Il tipo di intestazione/piè di pagina visualizzato sulla pagina è controllato dalle impostazioni della sezione “Prima pagina diversa” e “Pagine pari e dispari diverse”: se sono disabilitate, i titoli della sezione vengono ignorati.
Il seguente esempio di codice mostra come creare 2 sezioni con intestazioni diverse:
Se desideri rimuovere il testo di intestazioni e piè di pagina senza rimuovere oggetti HeaderFooter nel documento, puoi utilizzare il metodo ClearHeadersFooters. Inoltre, puoi utilizzare il metodo DeleteHeaderFooterShapes per rimuovere tutte le forme dalle intestazioni e dai piè di pagina del documento.
L’esempio di codice seguente mostra come cancellare il contenuto di tutte le intestazioni e i piè di pagina in una sezione:
Il seguente esempio di codice su come rimuovere tutte le forme da tutti i piè di pagina delle intestazioni in una sezione:
Personalizza le proprietà della pagina in una sezione
Prima di stampare una pagina o un documento potresti voler personalizzare e modificare le dimensioni e il layout di una singola pagina o dell’intero documento. Con l’impostazione della pagina è possibile modificare le impostazioni delle pagine del documento quali margini, orientamento e dimensioni per la stampa di prime pagine o pagine dispari diverse.
Aspose.Words consente di personalizzare le proprietà della pagina e della sezione utilizzando la classe PageSetup.
L’esempio di codice seguente mostra come impostare proprietà come la dimensione della pagina e l’orientamento per la sezione corrente:
L’esempio di codice seguente mostra come modificare le proprietà della pagina in tutte le sezioni: