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