Jak číst metadata stránky z OneNote v Python

Jak číst metadata stránky z OneNote v Python

OneNote .one soubory ukládají metadata, která můžete číst bez parsování celého DOM dokumentu. Na dokumentu úrovni, Document.FileFormat říká vám, kterou variantu OneNote soubor používá. Na stránce úrovni, každý Page obsahuje autora, časové razítko vytvoření, časové razítko poslední úpravy a úroveň hierarchie. Aspose.Note FOSS pro Python to zpřístupňuje přes Document a Page třídy.


Požadavky

pip install aspose-note

Metadata na úrovni dokumentu

Objekt Document vystavuje jednu vlastnost metadata:

VlastnostTypPopis
doc.FileFormatFileFormatVarianta OneNote: FileFormat.OneNote2010, FileFormat.OneNoteOnline, nebo FileFormat.Unknown.
from aspose.note import Document

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

Metadata na úrovni stránky

Každý Page objekt nese:

VlastnostTypPopis
page.Author`strNone`
page.CreationTime`datetimeNone`
page.LastModifiedTime`datetimeNone`
page.Level`intNone`

Krok 1: Přečíst metadata pro každou 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í příklad: Zpráva o metadatech

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")

Detekce podstránek

V OneNote jsou podstránky vizuálně odsazeny pod jejich nadřazenou stránkou. The page.Level vlastnost odráží toto vnoření:

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 úrovně:

  • 0: stránka nejvyšší úrovně
  • 1: podstránka první úrovně (jedno odsazení)
  • 2: podstránka druhé úrovně (dvě odsazení)

Poznámky

  • Všechny časové značky (CreationTime, LastModifiedTime) jsou datetime objekty v UTC, pokud jsou přítomny.
  • page.Level vrací None pro stránky, kde úroveň nebyla uložena v binárním formátu. Zpracujte None jako 0 používání page.Level or 0.

Viz také

 Čeština