Trabalhar com secções
Às vezes, você deseja um documento que não tenha a mesma formatação em todas as páginas. Por exemplo, pode ser necessário modificar os formatos de número de Página, ter um tamanho e orientação de página diferentes ou ter a primeira página do documento como Página de rosto sem qualquer numeração. Pode conseguir isso com secções.
As seções são nós de nível que controlam cabeçalhos e rodapés, orientação, colunas, margens, formatação de número de página e outros.
Aspose.Words permite gerir secções, dividir um documento em secções e efectuar alterações de formatação que se aplicam apenas a uma secção específica. Aspose.Words armazena informações sobre a formatação de secções, tais como cabeçalhos e rodapés, configuração de páginas e definições de colunas na quebra de secções.
Este artigo explica como trabalhar com secções e quebras de secções.
Qual seção e quebra de seção é
As secções do documento são representadas pelas classes Section e SectionCollection. Os objectos Section são filhos imediatos do nó Document e podem ser acedidos através da propriedade Sections. Você pode gerenciar esses nós usando alguns métodos, como Remove, Add, IndexOf, e outros.
Section break é uma opção que divide as páginas do documento em seções com layouts personalizáveis.
Tipos de quebra de secção
Aspose.Words permite dividir e formatar documentos utilizando diferentes quebras de secção da enumeração BreakType:
- SectionBreakContinuous
- SectionBreakNewColumn
- SectionBreakNewPage
- SectionBreakEvenPage
- SectionBreakOddPage
Você também pode usar a enumeração SectionStart para escolher um tipo de quebra que se aplica apenas à primeira seção, como NewColumn, NewPage, EvenPage, e OddPage.
Gerir uma secção
Como uma seção é um nó composto normal, toda a manipulação do nó API pode ser usada para manipular seções: para adicionar, remover e outras operações em seções. Você pode ler mais sobre nós no artigo Aspose.Words Modelo De Objecto Do Documento (DOM).
Por outro lado, você também pode usar o DocumentBuilder
API para trabalhar com seções. Neste artigo, vamos nos concentrar nesta maneira particular de trabalhar com seções.
Inserir ou remover uma quebra de secção
Aspose.Words permite inserir uma quebra de secção no texto utilizando o método InsertBreak.
O exemplo de código a seguir mostra como inserir uma quebra de seção em um documento:
Use o método Remove para excluir uma quebra de seção. Se você não precisar remover uma quebra de seção específica e, em vez disso, excluir o conteúdo dessa seção, poderá usar o método ClearContent.
O exemplo de código a seguir mostra como remover quebras de seções:
Mover uma secção
Se você deseja mover uma seção de uma posição para outra em seu documento, você precisa obter o índice dessa seção. Aspose.Words permite obter uma posição de secção a partir de um SectionCollection. Você pode usar a propriedade Sections para obter todas as seções em seu documento. Mas se você deseja obter apenas a primeira seção, pode usar a propriedade FirstSection.
O exemplo de código a seguir mostra como acessar a primeira seção e iterar por meio dos filhos de um nó composto:
Especificar uma disposição de secção
Às vezes, você deseja que seu documento tenha uma aparência melhor, criando layouts criativos para diferentes seções do documento. Se você quiser especificar o tipo da grade de seção atual, poderá escolher um modo de layout de seção Usando a enumeração SectionLayoutMode:
- Defeito
- Grelha
- LineGrid
- SnapToChars
O exemplo de código a seguir mostra como limitar o número de linhas que cada página pode ter:
Editar uma secção
Quando você adiciona uma nova seção ao seu documento, não haverá corpo ou parágrafo que você possa editar. Aspose.Words permite que você garanta que uma seção contém um corpo com pelo menos um parágrafo usando o método EnsureMinimum – ele adicionará automaticamente um nó Body (ou HeaderFooter) ao documento e, em seguida, adicionará um parágrafo a ele.
O exemplo de código a seguir mostra como preparar um novo nó de seção Usando EnsureMinimum:
Acrescentar ou preceder o conteúdo
Se quiser desenhar alguma forma ou adicionar texto ou imagem no início/fim de uma secção, pode utilizar os métodos AppendContent e PrependContent da classe Section.
O exemplo de código a seguir mostra como anexar o conteúdo de uma seção existente:
Clonar uma secção
Aspose.Words permite duplicar uma secção criando uma cópia completa da mesma utilizando o método deepClone.
O exemplo de código a seguir mostra como clonar a primeira seção do documento:
Copiar secções entre documentos
Em alguns casos, você pode ter documentos grandes com muitas seções e deseja copiar o conteúdo de uma seção de um documento para outro.
Aspose.Words permite copiar secções entre documentos utilizando o método ImportNode.
O exemplo de código a seguir mostra como copiar seções entre documentos:
Trabalhar com cabeçalho e Rodapé da secção
As regras básicas para exibir um cabeçalho ou rodapé para cada seção são bastante simples:
- Se a seção não tiver seus próprios cabeçalhos/rodapés de um determinado tipo, ela será retirada da seção anterior.
- O tipo de cabeçalho/rodapé exibido na página é controlado pelas configurações da seção" primeira página diferente “e” páginas ímpares e pares diferentes " – se estiverem desativadas, os próprios títulos da seção serão ignorados.
O exemplo de código a seguir mostra como criar 2 seções com cabeçalhos diferentes:
Se pretender remover o texto dos cabeçalhos e rodapés sem remover objectos HeaderFooter no documento, pode utilizar o método ClearHeadersFooters. Além disso, você pode usar o método DeleteHeaderFooterShapes para remover todas as formas dos cabeçalhos e rodapés do documento.
O exemplo de código a seguir mostra como limpar o conteúdo de todos os cabeçalhos e rodapés em uma seção:
O exemplo de código a seguir como remover todas as formas de todos os cabeçalhos rodapés em uma seção:
Personalizar as propriedades da Página numa secção
Antes de imprimir uma página ou um documento, pode querer personalizar e modificar o tamanho e a disposição de uma única página ou de todo o documento. Com a configuração da página, pode alterar as definições das páginas do documento, tais como margens, orientação e tamanho, para imprimir diferentes primeiras páginas ou páginas ímpares.
Aspose.Words permite personalizar as propriedades da página e da secção utilizando a classe PageSetup.
O exemplo de código a seguir mostra como definir propriedades como tamanho da página e orientação para a seção atual:
O exemplo de código a seguir mostra como modificar as propriedades da página em todas as seções: