Логические уровни узлов в документе
В этой документации иногда упоминается группа классов узлов, относящихся к “уровню” в документе, например, узлы “уровня блоков”, “встроенного уровня” (также известные как “встроенные”) или “уровня строк”. Эти уровни в документе различаются чисто логически и не выражаются явно посредством наследования или другими способами Aspose.Words DOM. Уровень узла используется для описания места в дереве документа, где обычно находится узел.
В предыдущей статье мы уже говорили о взаимосвязи между узлами и о том факте, что не всем узлам разрешено быть дочерними по отношению к каким-либо узлам. Например, Cell может быть только дочерним элементом Row, а Row может быть только дочерним элементом Table и так далее. Эти связи также применимы для логического разделения узлов на уровни в документе.
В следующих разделах описываются логические уровни узлов в Aspose.Words и классы, принадлежащие каждому уровню.
Логический уровень документа и раздела
Документ Word состоит из одного или нескольких разделов, представленных классом Section и разделенных разделительными полосами. Раздел может сам определять размер страницы, поля, ориентацию, количество текстовых столбцов, а также верхние и нижние колонтитулы.
Узлы уровней Document и Section имеют структуру, показанную на следующей диаграмме.
Раздел содержит основной текст, а также верхние и нижние колонтитулы для первой, четной и нечетной страниц. Эти различные “потоки” текста называются stories.
В Aspose.Words узел Section содержит узлы Body и HeaderFooter историй. Объект Body хранит основной текст. Объекты HeaderFooter хранят текст для каждого верхнего и нижнего колонтитула. Текст любой статьи состоит из абзацев и таблиц, соответственно представленных объектами Paragraph и Table уровня блоков.
Кроме того, каждый документ Word может содержать глоссарий, который представлен узлом GlossaryDocument в Aspose.Words. Документ-глоссарий содержит записи building_blocks, BuildingBlockType.AUTO_TEXT и BuildingBlockType.AUTO_CORRECT.
GlossaryDocument включает BuildingBlock узлы, представляющие различные типы записей в документе глоссария. Каждый BuildingBlock содержит разделы, которые можно вставлять, удалять и копировать в документы.
Логический уровень блока
Узлы уровня блоков представляют собой контейнеры для содержимого и элементов управления содержимым и могут встречаться в дочерних узлах дерева документов в следующих узлах:
Узлы блочного уровня представлены следующими классами:
- Tables и Paragraphs, которые являются наиболее важными узлами блочного уровня
- Bookmarks, которое происходит как на уровне блока, так и на встроенном уровне
- StructuredDocumentTag, которые представляют собой пользовательскую разметку и могут содержать как содержимое, так и элементы управления содержимым
На следующей диаграмме показаны элементы блочного уровня.
Встроенный логический уровень
Узлы встроенного уровня представляют фактическое содержимое документа и могут содержаться в следующих контейнерах:
- Paragraph – наиболее распространенный контейнер
- SmartTag
- StructuredDocumentTag
Элементы встроенного уровня представлены следующими классами:
- Run – фрагменты текста, отформатированные по-разному
- BookmarkStart и BookmarkEnd представляют собой закладки
- CommentRangeStart, CommentRangeEnd, Comment и Footnote представляют собой аннотации
- FieldStart, FieldChar, FieldSeparator и FieldEnd, которые представляют символы полей, и FormField, которые представляют поля Word
- SpecialChar представляет специальные символы в документе
- Shape и GroupShape представляют собой формы, рисунки, изображения и т.д.
- SmartTag и StructuredDocumentTag представляют пользовательскую разметку
На следующей диаграмме показана структура узлов встроенного уровня.
Фигуры в Microsoft Word включают Office Art AutoShapes, текстовые поля, изображения, объекты OLE и элементы управления ActiveX, все из которых представлены с использованием класса Shape
. Некоторые фигуры также могут содержать текст, поэтому узлы фигур в Aspose.Words могут содержать узлы на уровне блоков.
Фигуры могут быть сгруппированы друг внутри друга с помощью узлов GroupShape.
Уровень узлов таблиц, строк и ячеек
Таблица состоит из узлов строк и ячеек. Table Элементы представлены следующими классами:
- Row представляет строку таблицы
- Cell представляет собой ячейку таблицы
- StructuredDocumentTag представляет пользовательскую разметку
На следующей диаграмме показаны структуры узлов уровней Table, Row и Cell.