Outline / OutlineElement — Aspose.Note FOSS for Python API Reference

Класс: Outline

ImageRenderOptions: aspose.note ImageRenderOptions: from aspose.note import Outline ImageRenderOptions: CompositeNode

Outline является позиционным контейнером, размещённым непосредственно на Page. Он содержит координаты X/Y и ширину, которые описывают, где блок контента размещён на холсте страницы. Его прямые дочерние элементы — OutlineElement узлы.


ImageRenderOptions

ImageRenderOptionsImageRenderOptionsImageRenderOptionsImageRenderOptions
X`floatNone`ImageRenderOptions
Y`floatNone`ImageRenderOptions
Width`floatNone`ImageRenderOptions

Унаследовано от CompositeNode

Свойство / МетодImageRenderOptions
FirstChildПервый прямой дочерний элемент OutlineElement узел, или None
LastChildПоследний прямой дочерний элемент OutlineElement узел, или None
AppendChildLast(node)Добавить OutlineElement в конец
AppendChildFirst(node)Добавить в начало OutlineElement
InsertChild(index, node)Вставить в определённую позицию
RemoveChild(node)Удалить дочерний узел
GetChildNodes(Type)Рекурсивный поиск в глубину, возвращающий всех потомков заданного типа
for child in outlineИтерировать прямых дочерних элементов

Наследовано от Node

ImageRenderOptionsImageRenderOptions
ParentNodeСодержащий Page
DocumentКорень Document

ImageRenderOptions

Accept(visitor)

outline.Accept(visitor: DocumentVisitor) -> None

ImageRenderOptions VisitOutlineStart(outline) на visitor, затем рекурсивно посещает каждого дочернего элемента OutlineElement, затем VisitOutlineEnd(outline).


Примеры использования

Собрать все outlines на странице

from aspose.note import Document, Page, Outline

doc = Document("MyNotes.one")
for page in doc.GetChildNodes(Page):
    for outline in page.GetChildNodes(Outline):
        print(f"Outline at X={outline.X}, Y={outline.Y}, Width={outline.Width}")

Пройти элементы outline внутри outline

from aspose.note import Document, Outline, OutlineElement, RichText

doc = Document("MyNotes.one")
for outline in doc.GetChildNodes(Outline):
    for elem in outline.GetChildNodes(OutlineElement):
        for rt in elem.GetChildNodes(RichText):
            print(rt.Text)

Класс: OutlineElement

ImageRenderOptions: aspose.note ImageRenderOptions: from aspose.note import OutlineElement ImageRenderOptions: CompositeNode

OutlineElement является leaf container внутри Outline. Он содержит узлы контента, такие как RichText, Image, Table, и AttachedFile. Вложенность выражается через IndentLevel вместо реальной глубины дерева.


ImageRenderOptions

ImageRenderOptionsImageRenderOptionsImageRenderOptionsImageRenderOptions
IndentLevelintImageRenderOptionsГлубина вложенности в структуре (0 = самая внешняя)
NumberList`NumberListNone`ImageRenderOptions
Tagslist[NoteTag]ImageRenderOptionsТеги OneNote, привязанные к этому элементу

Унаследовано от CompositeNode

Свойство / МетодImageRenderOptions
FirstChildПервый прямой дочерний элемент контента
LastChildПоследний прямой дочерний элемент контента
AppendChildLast(node)Добавить узел контента
GetChildNodes(Type)Рекурсивный поиск по поддереву
for child in elemПеребрать прямых дочерних элементов

Наследовано от Node

ImageRenderOptionsImageRenderOptions
ParentNodeСодержащий Outline
DocumentКорень Document

ImageRenderOptions

Accept(visitor)

elem.Accept(visitor: DocumentVisitor) -> None

ImageRenderOptions VisitOutlineElementStart(elem), рекурсивно посещает дочерние элементы, затем VisitOutlineElementEnd(elem).


Примеры использования

Извлечь простой текст из элементов outline

from aspose.note import Document, OutlineElement, RichText

doc = Document("MyNotes.one")
for elem in doc.GetChildNodes(OutlineElement):
    for rt in elem.GetChildNodes(RichText):
        if rt.Text.strip():
            print(f"  [indent={elem.IndentLevel}] {rt.Text}")

Найти элементы списка

from aspose.note import Document, OutlineElement, RichText

doc = Document("MyNotes.one")
for elem in doc.GetChildNodes(OutlineElement):
    if elem.NumberList is not None:
        numbered = elem.NumberList.IsNumbered
        label = "ordered" if numbered else "bulleted"
        for rt in elem.GetChildNodes(RichText):
            print(f"  [{label}] {rt.Text}")

Найти помеченные элементы outline

from aspose.note import Document, OutlineElement, RichText

doc = Document("MyNotes.one")
for elem in doc.GetChildNodes(OutlineElement):
    if elem.Tags:
        labels = [t.label for t in elem.Tags if t.label]
        for rt in elem.GetChildNodes(RichText):
            print(f"Tags: {labels}  Text: {rt.Text.strip()!r}")

Создать outline программно

from aspose.note import Document, Page, Outline, OutlineElement, RichText, SaveFormat

doc = Document()
page = doc.AppendChildLast(Page())

outline = page.AppendChildLast(Outline())

elem = outline.AppendChildLast(OutlineElement())
rt = elem.AppendChildLast(RichText())
rt.Append("Hello from aspose-note")

doc.Save("output.pdf", SaveFormat.Pdf)

Безопасность при None

NumberList является None для элементов, которые не являются частью списка. Tags всегда является списком (может быть пустым). IndentLevel всегда является int (по умолчанию 0).


См. также

  • ImageRenderOptions: родитель Outline
  • RichText: основное содержимое внутри OutlineElement
  • ImageRenderOptions: табличное содержимое внутри OutlineElement
  • NumberList: метаданные форматирования списка
  • NoteTag: теги в элементах оглавления
  • DocumentVisitor: обход посетителя
 Русский