Níveis lógicos de nós em um documento
Esta documentação às vezes se refere a um grupo de classes de nós como pertencentes a um “nível” em um documento, como nós de “nível de bloco”, “nível inline” (também conhecido como “inline”) ou “nível de linha”. Esses níveis em um documento são diferenciados de forma puramente lógica e não são expressos explicitamente por herança ou outros meios Aspose.Words DOM. O nível do nó é usado para descrever o local na árvore do documento onde o nó normalmente ocorreria.
No artigo anterior, já falamos sobre o relacionamento entre os nós e o fato de que nem todos os nós podem ser filhos de quaisquer nós. Por exemplo, Cell só pode ser filho Row, e Row só pode ser filho Table e assim por diante. Esses relacionamentos também são aplicáveis à divisão lógica de nós em níveis no documento.
As seções a seguir descrevem os níveis lógicos dos nós no Aspose.Words e as classes que pertencem a cada nível.
Nível lógico de documento e seção
Um documento Word consiste em uma ou mais seções, representadas pela classe Section e separadas por quebras de seção. Uma seção pode definir seu próprio tamanho de página, margens, orientação, número de colunas de texto e cabeçalhos e rodapés.
Os nós de nível Document e Section têm a estrutura mostrada no diagrama a seguir.
Uma seção contém o texto principal, bem como cabeçalhos e rodapés das primeiras páginas, pares e ímpares. Esses diferentes “fluxos” de texto são chamados de stories.
No Aspose.Words, o nó Section contém os nós da história Body e HeaderFooter. O objeto Body armazena o texto principal. Os objetos HeaderFooter armazenam o texto de cada cabeçalho e rodapé. O texto de qualquer história consiste em parágrafos e tabelas, representados respectivamente pelos objetos Paragraph e Table do nível do bloco.
Além disso, cada documento do Word pode conter um glossário, representado pelo nó GlossaryDocument em Aspose.Words. Um documento de glossário contém entradas building_blocks, BuildingBlockType.AUTO_TEXT e BuildingBlockType.AUTO_CORRECT.
GlossaryDocument inclui nós BuildingBlock que representam diferentes tipos de entradas de documentos do glossário. Cada BuildingBlock contém seções que podem ser inseridas, removidas e copiadas em documentos.
Nível Lógico de Bloco
Os nós em nível de bloco representam contêineres para conteúdo e controles de conteúdo e podem ocorrer nos nós filhos da árvore de documentos nos seguintes nós:
Os nós em nível de bloco são representados pelas seguintes classes:
- Tables e Paragraphs, que são os nós de nível de bloco mais importantes
- Bookmarks, que ocorre tanto no nível do bloco quanto no nível inline
- StructuredDocumentTag, que representa marcação personalizada e pode conter conteúdo e controles de conteúdo
O diagrama a seguir mostra elementos em nível de bloco.
Nível lógico embutido
Os nós de nível embutido representam o conteúdo real do documento e podem estar contidos nos seguintes contêineres:
- Paragraph – o contêiner mais comum
- SmartTag
- StructuredDocumentTag
Os elementos de nível embutido são representados pelas seguintes classes:
- Run – trechos de texto formatados de forma diferente
- BookmarkStart e BookmarkEnd representam marcadores
- CommentRangeStart, CommentRangeEnd, Comment e Footnote representam anotações
- FieldStart, FieldChar, FieldSeparator e FieldEnd que representam caracteres de campo e FormField representam campos do Word
- SpecialChar representa caracteres especiais no documento
- Shape e GroupShape representam formas, desenhos, imagens, etc.
- SmartTag e StructuredDocumentTag representam marcação personalizada
O diagrama a seguir mostra a estrutura dos nós de nível sequencial.
As formas em Microsoft Word incluem Office Art AutoShapes, caixas de texto, imagens, objetos OLE e controles ActiveX, todos representados usando a classe Shape
. Algumas formas também podem conter texto, portanto, os nós de forma em Aspose.Words podem conter nós em nível de bloco.
As formas podem ser agrupadas umas dentro das outras usando nós GroupShape.
Nível de tabela, linha e nó de célula
A tabela consiste em nós de linhas e células. Os elementos Table são representados pelas seguintes classes:
- Row representa uma linha da tabela
- Cell representa uma célula da tabela
- StructuredDocumentTag representa marcação personalizada
O diagrama a seguir mostra as estruturas de nós dos níveis Table, Row e Cell.