Kako pročitati metapodatke stranice iz OneNote-a u Python

Kako pročitati metapodatke stranice iz OneNote-a u Python

OneNote .one datoteke čuvaju metapodatke koje možete pročitati bez parsiranja celog DOM‑a dokumenta. Na dokument nivou, Document.FileFormat vam govori koju OneNote varijantu fajl koristi. Na stranici nivou, svaki Page sadrži autora, vreme kreiranja, vreme poslednje izmene i nivo hijerarhije. Aspose.Note FOSS za Python izlaže ovo kroz Document i Page klase.


Preduslovi

pip install aspose-note

Metapodaci na nivou dokumenta

The Document objekat izlaže jedno svojstvo metapodataka:

SvojstvoTipOpis
doc.FileFormatFileFormatVarijanta OneNote: FileFormat.OneNote2010, FileFormat.OneNoteOnline, ili FileFormat.Unknown.
from aspose.note import Document

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

Metapodaci na nivou stranice

Svaki Page objekat sadrži:

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

Korak 1: Pročitajte metapodatke za svaku stranicu

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

Kompletan primer: Izveštaj o metapodacima

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

Otkrivanje podstranica

U OneNote‑u, podstranice su vizuelno uvučene ispod svoje nadređene stranice. Svojstvo page.Level odražava ovo ugnježđivanje:

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

Vrednosti nivoa:

  • 0: glavna stranica
  • 1: podstranica prvog nivoa (jedno uvlačenje)
  • 2: podstranica drugog nivoa (dva uvlačenja)

Beleške

  • Svi vremenski žigovi (CreationTime, LastModifiedTime) su datetime objekti u UTC kada su prisutni.
  • page.Level vraća None za stranice gde nivo nije sačuvan u binarnom formatu. Tretirajte None kao 0 koristeći page.Level or 0.

Vidi takođe

 Српски