Ako čítať metadáta stránky z OneNote v Python

Ako čítať metadáta stránky z OneNote v Python

OneNote .one súbory ukladajú metadáta, ktoré môžete čítať bez parsovania celého DOM dokumentu. Na dokument úrovni, Document.FileFormat hovorí vám, ktorú variantu OneNote súbor používa. Na stránke úrovni, každý Page obsahuje autora, časové razítko vytvorenia, časové razítko poslednej úpravy a úroveň hierarchie. Aspose.Note FOSS pre Python tieto údaje sprístupňuje prostredníctvom Document a Page tried.


Požiadavky

pip install aspose-note

Metadáta na úrovni dokumentu

Objekt Document objekt vystavuje jednu vlastnosť metadát:

VlastnosťTypPopis
doc.FileFormatFileFormatVarianta OneNote: FileFormat.OneNote2010, FileFormat.OneNoteOnline, alebo FileFormat.Unknown.
from aspose.note import Document

doc = Document("MyNotes.one")
print(f"File format: {doc.FileFormat}")

Metadáta na úrovni stránky

Každý Page objekt nesie:

VlastnosťTypPopis
page.Author`strNone`
page.CreationTime`datetimeNone`
page.LastModifiedTime`datetimeNone`
page.Level`intNone`

Krok 1: Prečítajte metadáta pre každú stránku

from aspose.note import Document, Page

doc = Document("ProjectNotes.one")

for i, page in enumerate(doc, start=1):
    title = ""
    if page.Title and page.Title.TitleText:
        title = page.Title.TitleText.Text.strip()

    level = page.Level or 0
    indent = "  " * level

    author = page.Author or "(unknown)"
    created = page.CreationTime.strftime("%Y-%m-%d") if page.CreationTime else "(none)"
    modified = page.LastModifiedTime.strftime("%Y-%m-%d %H:%M") if page.LastModifiedTime else "(none)"

    print(f"{indent}[{i}] {title or '(untitled)'}")
    print(f"{indent}    Author:   {author}")
    print(f"{indent}    Created:  {created}")
    print(f"{indent}    Modified: {modified}")
    print(f"{indent}    Level:    {level}")

Kompletný príklad: Správa o metadátach

from aspose.note import Document

def print_metadata_report(one_path: str) -> None:
    doc = Document(one_path)

    print()

    for i, page in enumerate(doc, start=1):
        title = ""
        if page.Title and page.Title.TitleText:
            title = page.Title.TitleText.Text.strip()

        level = page.Level or 0
        prefix = "  " * level + f"[{i}]"

        parts = [prefix, f'"{title or "(untitled)"}"']
        if page.Author:
            parts.append(f"by {page.Author}")
        if page.CreationTime:
            parts.append(f"created {page.CreationTime.strftime('%Y-%m-%d')}")
        if page.LastModifiedTime:
            parts.append(f"modified {page.LastModifiedTime.strftime('%Y-%m-%d')}")

        print("  ".join(parts))

print_metadata_report("ProjectNotes.one")

Detekcia podstránok

V OneNote sú podstránky vizuálne odsadené pod ich nadradenú stránku. The page.Level property reflects this nesting:

from aspose.note import Document

doc = Document("MyNotes.one")

for page in doc:
    level = page.Level or 0
    title = ""
    if page.Title and page.Title.TitleText:
        title = page.Title.TitleText.Text.strip()

    indent = "  " * level
    marker = "├─" if level > 0 else "•"
    print(f"{indent}{marker} {title or '(untitled)'}")

Hodnoty úrovne:

  • 0: hlavná stránka
  • 1: podstránka prvej úrovne (jedno odsadenie)
  • 2: podstránka druhej úrovne (dve odsadenia)

Poznámky

  • Všetky časové značky (CreationTime, LastModifiedTime) sú datetime objekty v UTC, ak sú prítomné.
  • page.Level vracia None pre stránky, kde úroveň nebola uložená v binárnom formáte. Spracujte None ako 0 používanie page.Level or 0.

Pozri tiež

 Slovenčina