---
title: "Trabalhando com seções em Python"
---


À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 formatos de número de página, ter tamanho e orientação de página diferentes ou ter a primeira página do documento como capa sem qualquer numeração. Você pode conseguir isso com seções.

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 gerenciar seções, dividir um documento em seções e fazer alterações de formatação que se aplicam apenas a uma seção específica. Aspose.Words armazena informações sobre formatação de seção, como cabeçalhos e rodapés, configuração de página e configurações de coluna na quebra de seção.

Este artigo explica como trabalhar com seções e quebras de seção.

## O que é seção e quebra de seção

As seções do documento são representadas pelas classes [Section](https://reference.aspose.com/words/python-net/aspose.words/section/) e [SectionCollection](https://reference.aspose.com/words/python-net/aspose.words/sectioncollection/). Os objetos de seção são filhos imediatos do nó [Document](https://reference.aspose.com/words/python-net/aspose.words/document/) e podem ser acessados por meio da propriedade [Sections](https://reference.aspose.com/words/python-net/aspose.words/document/sections/). Você pode gerenciar esses nós usando alguns métodos como [Remove](https://reference.aspose.com/words/python-net/aspose.words/nodecollection/remove/#node), [Add](https://reference.aspose.com/words/python-net/aspose.words/nodecollection/add/#node), [IndexOf](https://reference.aspose.com/words/python-net/aspose.words/nodecollection/index_of/#node) e outros.

A quebra de seção é uma opção que divide as páginas do documento em seções com layouts personalizáveis.

## Tipos de quebra de seção

Aspose.Words permite dividir e formatar documentos usando diferentes quebras de seção da enumeração [BreakType](https://reference.aspose.com/words/python-net/aspose.words/breaktype/):

- SectionBreakContinuo
- SeçãoBreakNewColumn
- SeçãoBreakNewPage
- SeçãoBreakEvenPage
- SectionBreakOddPage

Você também pode usar a enumeração [SectionStart](https://reference.aspose.com/words/python-net/aspose.words/sectionstart/) para escolher um tipo de quebra que se aplica somente à primeira seção, como NewColumn, NewPage, EvenPage e OddPage.

## Gerenciar uma seçã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 Document Object Model (DOM)](/words/pt/python-net/aspose-words-document-object-model/).

Por outro lado, você também pode usar o `DocumentBuilder` API para trabalhar com seções. Neste artigo, focaremos nesta forma específica de trabalhar com seções.

## Inserir ou remover uma quebra de seção

Aspose.Words permite inserir uma quebra de seção no texto usando o método [InsertBreak](https://reference.aspose.com/words/python-net/aspose.words/documentbuilder/insert_break/#breaktype).

O exemplo de código a seguir mostra como inserir uma quebra de seção em um documento:

{{< gist "aspose-words-gists" "000cda3bfe9679c09bfd03617bd1f9e8" "insert-section-breaks.py" >}}

Use o método [Remove](https://reference.aspose.com/words/python-net/aspose.words/node/remove/#default) 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](https://reference.aspose.com/words/python-net/aspose.words/section/clear_content/#default).

O exemplo de código a seguir mostra como remover quebras de seção:

{{< gist "aspose-words-gists" "000cda3bfe9679c09bfd03617bd1f9e8" "remove-section-breaks.py" >}}

{{% alert color="primary" %}}

Observe que uma quebra de seção contém informações sobre a seção anterior, não a seção posterior. Portanto, se você remover uma quebra de seção, o texto antes da quebra removida obterá as propriedades da quebra de seção seguinte. Isso pode fazer com que todo o documento fique no modo paisagem ou que os cabeçalhos e rodapés sejam alterados ou desapareçam completamente.

{{% /alert %}}

## Mover uma seção

Se quiser mover uma seção de uma posição para outra no documento, você precisará obter o índice dessa seção. Aspose.Words permite obter uma posição de seção de um [SectionCollection](https://reference.aspose.com/words/python-net/aspose.words/sectioncollection/). Você pode usar a propriedade [Sections](https://reference.aspose.com/words/python-net/aspose.words/document/sections/) para obter todas as seções do seu documento. Mas se quiser obter apenas a primeira seção, você pode usar a propriedade [FirstSection](https://reference.aspose.com/words/python-net/aspose.words/document/first_section/).

O exemplo de código a seguir mostra como acessar a primeira seção e iterar pelos filhos de um nó composto:

{{< gist "aspose-words-gists" "000cda3bfe9679c09bfd03617bd1f9e8" "section-child-nodes.py" >}}

## Especifique um layout de seção

Às vezes, você deseja que seu documento tenha uma aparência melhor criando layouts criativos para diferentes seções do documento. Se quiser especificar o tipo da grade de seção atual, você pode escolher um modo de layout de seção usando a enumeração [SectionLayoutMode](https://reference.aspose.com/words/python-net/aspose.words/sectionlayoutmode/):

- Padrão
- Grade
- Grade de linha
-SnapToChars

O exemplo de código a seguir mostra como limitar o número de linhas que cada página pode ter:

{{< gist "aspose-words-gists" "000cda3bfe9679c09bfd03617bd1f9e8" "line-grid-section-layout-mode.py" >}}

## Editar uma seçã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 garantir que uma seção contém um corpo com pelo menos um parágrafo usando o método [EnsureMinimum](https://reference.aspose.com/words/python-net/aspose.words/section/ensure_minimum/#default) – ele adicionará automaticamente um nó Corpo (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**:

{{< gist "aspose-words-gists" "000cda3bfe9679c09bfd03617bd1f9e8" "ensure-minimum.py" >}}

### Anexar ou preceder conteúdo

Se quiser desenhar alguma forma ou adicionar texto ou imagem no início/fim de uma seção, você pode usar os métodos [AppendContent](https://reference.aspose.com/words/python-net/aspose.words/section/append_content/#section) e [PrependContent](https://reference.aspose.com/words/python-net/aspose.words/section/prepend_content/#section) da classe [Section](https://reference.aspose.com/words/python-net/aspose.words/section/).

O exemplo de código a seguir mostra como anexar conteúdo de uma seção existente:

{{< gist "aspose-words-gists" "000cda3bfe9679c09bfd03617bd1f9e8" "append-section-content.py" >}}

### Clonar uma seção

Aspose.Words permite duplicar uma seção criando uma cópia completa dela usando o método [Clone](https://reference.aspose.com/words/python-net/aspose.words/section/clone/#default).

O exemplo de código a seguir mostra como clonar a primeira seção do seu documento:

{{< gist "aspose-words-gists" "000cda3bfe9679c09bfd03617bd1f9e8" "clone-section.py" >}}

### Copiar seções entre documentos

Em alguns casos, você pode ter documentos grandes com muitas seções e desejar copiar o conteúdo de uma seção de um documento para outro.

Aspose.Words permite copiar seções entre documentos usando o método [ImportNode](https://reference.aspose.com/words/python-net/aspose.words/nodeimporter/import_node/#node_bool).

O exemplo de código a seguir mostra como copiar seções entre documentos:

{{< gist "aspose-words-gists" "000cda3bfe9679c09bfd03617bd1f9e8" "copy-section.py" >}}

### Trabalhar com cabeçalho e rodapé de seção

As regras básicas para exibir um cabeçalho ou rodapé para cada seção são bastante simples:

1. Se a seção não tiver cabeçalhos/rodapés próprios de um determinado tipo, ela será retirada da seção anterior.
2. O tipo de cabeçalho/rodapé exibido na página é controlado pelas configurações da seção "Primeira página diferente" e "Páginas pares e ímpares diferentes" – se estiverem desabilitadas, 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:

{{< gist "aspose-words-gists" "2e1b2b28253780881d116e3a873ee668" "link-to-previous-header-footer.py" >}}

Se quiser remover o texto dos cabeçalhos e rodapés sem remover os objetos [HeaderFooter](https://reference.aspose.com/words/python-net/aspose.words/headerfooter/) do seu documento, você pode usar o método [ClearHeadersFooters](https://reference.aspose.com/words/python-net/aspose.words/section/clear_headers_footers/#default). Além disso, você pode usar o método [DeleteHeaderFooterShapes](https://reference.aspose.com/words/python-net/aspose.words/section/delete_header_footer_shapes/#default) para remover todas as formas dos cabeçalhos e rodapés do seu documento.

O exemplo de código a seguir mostra como limpar o conteúdo de todos os cabeçalhos e rodapés de uma seção:

{{< gist "aspose-words-gists" "000cda3bfe9679c09bfd03617bd1f9e8" "delete-header-footer-content.py" >}}

O exemplo de código a seguir mostra como remover todas as formas de todos os cabeçalhos e rodapés em uma seção:

{{< gist "aspose-words-gists" "000cda3bfe9679c09bfd03617bd1f9e8" "delete-header-footer-shapes.py" >}}

## Personalize as propriedades da página em uma seção

Antes de imprimir uma página ou documento, você pode personalizar e modificar o tamanho e o layout de uma única página ou de todo o documento. Com a configuração de página, você pode alterar as configurações das páginas do documento, como margens, orientação e tamanho, para imprimir primeiras páginas diferentes ou páginas ímpares.

Aspose.Words permite personalizar propriedades de páginas e seções usando a classe [PageSetup](https://reference.aspose.com/words/python-net/aspose.words/pagesetup/).

O exemplo de código a seguir mostra como definir propriedades como tamanho de página e orientação para a seção atual:

{{< gist "aspose-words-gists" "000cda3bfe9679c09bfd03617bd1f9e8" "page-setup-and-section-formatting.py" >}}

O exemplo de código a seguir mostra como modificar as propriedades da página em todas as seções:

{{< gist "aspose-words-gists" "000cda3bfe9679c09bfd03617bd1f9e8" "modify-page-setup-in-all-sections.py" >}}

## Veja também

- [Níveis lógicos de nós em um documento](/words/python-net/logical-levels-of-nodes-in-a-document/#document-and-section-logical-level)
- [Inserir e anexar documentos](/words/pt/python-net/insert-and-append-documents/)
