Hogyan olvassuk ki az oldal metaadatait a OneNote-ból Pythonban

Hogyan olvassuk ki az oldal metaadatait a OneNote-ból Pythonban

Az OneNote .one fájlok metaadatokat tárolnak, amelyeket a teljes dokumentum DOM elemzése nélkül is beolvashatsz. A document szinten a Document.FileFormat megmondja, hogy a fájl melyik OneNote változatot használja. A page szinten minden Page tartalmazza a szerzőt, a létrehozás időbélyegét, az utolsó módosítás időbélyegét és a hierarchiai szintet. Az Aspose.Note FOSS for Python ezeket a Document és Page osztályokon keresztül teszi elérhetővé.


Előfeltételek

pip install aspose-note

Dokumentumszintű metaadatok

A Document objektum egy metaadat‑tulajdonságot tesz elérhetővé:

TulajdonságTípusLeírás
doc.FileFormatFileFormatA OneNote változat: FileFormat.OneNote2010, FileFormat.OneNoteOnline, vagy FileFormat.Unknown.
from aspose.note import Document

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

Oldalszintű metaadatok

Minden Page objektum tartalmaz:

PropertyTypeDescription
page.Authorstr | NoneA felhasználó megjelenített neve, aki létrehozta vagy a lap tulajdonosa.
page.CreationTimedatetime | NoneA lap létrehozásának időpontja. Egy Python datetime objektumot ad vissza UTC-ben.
page.LastModifiedTimedatetime | NoneA lap legutóbbi módosításának időpontja.
page.Levelint | NoneAloldal behúzási szintje. 0 = felső szintű lap, 1 = első szintű aloldal, 2 = második szint, stb.

1. lépés: Olvassa el az összes oldal metaadatait

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

Teljes példa: Metaadat-jelentés

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

Aloldalak észlelése

A OneNote‑ban az aloldalak vizuálisan behúzva jelennek meg a szülőoldaluk alatt. A page.Level tulajdonság tükrözi ezt a hierarchiát:

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

Szintértékek:

  • 0: felső szintű oldal
  • 1: első szintű aloldal (egy behúzás)
  • 2: második szintű aloldal (két behúzás)

Megjegyzések

  • Minden időbélyeg (CreationTime, LastModifiedTime) datetime objektum UTC-ben, ha jelen van.
  • page.Level None-t ad vissza azoknál az oldalaknál, ahol a szint nem volt tárolva a bináris formátumban. Kezelje None-t 0-ként a page.Level or 0 használatával.

Lásd még

 Magyar