Niveles lógicos de nodos en un documento
Esta documentación a veces hace referencia a un grupo de clases de nodos como pertenecientes a un “nivel” en un documento, como nodos “nivel de bloque”, “nivel en línea” (también conocido como “en línea”) o “nivel de fila”.. Estos niveles en un documento se diferencian de forma puramente lógica y no se expresan explícitamente por herencia u otros medios Aspose.Words DOM. El nivel de nodo se utiliza para describir el lugar en el árbol del documento donde normalmente ocurriría el nodo.
En el artículo anterior, ya hablamos sobre la relación entre nodos y el hecho de que no todos los nodos pueden ser hijos de ningún nodo. Por ejemplo, una Celda solo puede ser una Fila secundaria y una Fila solo puede ser una Fila secundaria, y así sucesivamente. Estas relaciones también son aplicables para la división lógica de nodos en niveles en el documento.
Las siguientes secciones describen los niveles lógicos de los nodos en Aspose.Words y las clases que pertenecen a cada nivel.
Nivel lógico de documento y sección
Un documento de Word consta de una o más secciones, representadas por la clase Section y separadas por saltos de sección. Una sección puede definir su propio tamaño de página, márgenes, orientación, número de columnas de texto y encabezados y pies de página.
Los nodos de nivel Document y Section tienen la estructura que se muestra en el siguiente diagrama.
Una sección contiene el texto principal, así como encabezados y pies de página de las páginas primera, par e impar. Estos diferentes “flujos” de texto se denominan stories.
En Aspose.Words, el nodo Section contiene los nodos de historia Body y HeaderFooter. El objeto Body almacena el texto principal. Los objetos HeaderFooter almacenan el texto de cada encabezado y pie de página. El texto de cualquier historia consta de párrafos y tablas, representados respectivamente por los objetos Paragraph y Table del nivel de bloque.
Además, cada documento de Word puede contener un glosario, que está representado por el nodo GlossaryDocument en Aspose.Words. Un documento de glosario contiene entradas BuildingBlocks, AutoText y AutoCorrect.
GlossaryDocument incluye nodos BuildingBlock que representan diferentes tipos de entradas de documentos del glosario. Cada BuildingBlock contiene secciones que se pueden insertar, eliminar y copiar en documentos.
Bloquear nivel lógico
Los nodos a nivel de bloque representan contenedores para contenido y controles de contenido, y pueden aparecer en los nodos secundarios del árbol de documentos en los siguientes nodos:
- Cuerpo
- Encabezado
- Pie de página
- Nota al pie
- Comentario
- Forma
- Forma de grupo
- Celúla
- Etiqueta de documento estructurado
Los nodos a nivel de bloque están representados por las siguientes clases:
- Tables y Paragraphs, que son los nodos a nivel de bloque más importantes
- Marcadores, que se producen tanto a nivel de bloque como a nivel de línea
- StructuredDocumentTag, que representa un marcado personalizado y puede contener contenido y controles de contenido.
El siguiente diagrama muestra elementos a nivel de bloque.
Nivel lógico en línea
Los nodos de nivel en línea representan el contenido real del documento y pueden estar contenidos en los siguientes contenedores:
- Párrafo – el contenedor más común
- SmartTag
- Etiqueta de documento estructurado
Los elementos de nivel en línea están representados por las siguientes clases:
- Run: tiradas de texto con formato diferente
- BookmarkStart y BookmarkEnd representan marcadores
- CommentRangeStart, CommentRangeEnd, Comment y Footnote representan anotaciones
- FieldStart, FieldChar, FieldSeparator y FieldEnd que representan caracteres de campo y FormField representan campos de Word
- SpecialChar representa caracteres especiales en el documento.
- Shape y GroupShape representan formas, dibujos, imágenes, etc.
- SmartTag y StructuredDocumentTag representan marcas personalizadas
El siguiente diagrama muestra la estructura de nodos de nivel en línea.
Las formas en Microsoft Word incluyen autoformas de Office Art, cuadros de texto, imágenes, objetos OLE y controles ActiveX, todos los cuales se representan mediante la clase Shape
. Algunas formas también pueden contener texto, por lo que los nodos de formas en Aspose.Words pueden contener nodos a nivel de bloque.
Las formas se pueden agrupar unas dentro de otras utilizando nodos GroupShape.
Nivel de nodo de tabla, fila y celda
La tabla consta de nodos de filas y celdas. Los elementos de la tabla están representados por las siguientes clases:
- Row representa una fila de la tabla
- Cell representa una celda de la tabla
- StructuredDocumentTag representa un marcado personalizado
El siguiente diagrama muestra las estructuras de nodos de los niveles de tabla, fila y celda.