OneNote'tan Sayfa Üstverisini Python içinde Okuma

OneNote'tan Sayfa Üstverisini Python içinde Okuma

OneNote .one dosyalar, tam belge DOM’unu ayrıştırmadan okuyabileceğiniz meta verileri depolar. Şu konumda belge seviyesinde, Document.FileFormat size, dosyanın hangi OneNote varyantını kullandığını söyler. Şu konumda sayfa seviyesinde, her Page yazar, oluşturulma zaman damgası, son‑değiştirilme zaman damgası ve hiyerarşi seviyesini taşır. Aspose.Note FOSS for Python bunları şu aracılığıyla ortaya koyar: Document ve Page sınıfları.


Önkoşullar

pip install aspose-note

Belge Seviyesi Üstveri

Bu Document nesne bir meta veri özelliği ortaya koyar:

ÖzellikTürAçıklama
doc.FileFormatFileFormatOneNote varyantı: FileFormat.OneNote2010, FileFormat.OneNoteOnline, ya da FileFormat.Unknown.
from aspose.note import Document

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

Sayfa Seviyesi Üstveri

Her Page nesne taşır:

ÖzellikTürAçıklama
page.Author`strNone`
page.CreationTime`datetimeNone`
page.LastModifiedTime`datetimeNone`
page.Level`intNone`

Adım 1: Her Sayfa İçin Üstveriyi Oku

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

Tam Örnek: Üstveri Raporu

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

Alt Sayfaları Algılama

OneNote’ta, alt sayfalar görsel olarak üst sayfanın altında girintili gösterilir. page.Level özellik bu iç içeliği yansıtır:

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

Seviye değerleri:

  • 0: üst düzey sayfa
  • 1: birinci düzey alt sayfa (bir girinti)
  • 2: ikinci düzey alt sayfa (iki girinti)

Notlar

  • Tüm zaman damgaları (CreationTime, LastModifiedTime) şudur datetime nesneler mevcut olduğunda UTC’de.
  • page.Level döndürür None ikili formatta seviye depolanmamış sayfalar için. Ele al None olarak 0 kullanarak page.Level or 0.

Ayrıca Bakınız

 Türkçe