Cara Membaca Metadata Halaman dari OneNote di Python

Cara Membaca Metadata Halaman dari OneNote di Python

OneNote .one file menyimpan metadata yang dapat Anda baca tanpa mengurai seluruh DOM dokumen. Pada dokumen tingkat, Document.FileFormat memberitahu Anda varian OneNote mana yang digunakan file. Pada halaman tingkat, setiap Page memuat penulis, cap waktu pembuatan, cap waktu terakhir diubah, dan tingkat hierarki. Aspose.Note FOSS untuk Python mengekspos ini melalui Document dan Page kelas.


Prasyarat

pip install aspose-note

Metadata Tingkat Dokumen

Objek Document mengekspos satu properti metadata:

PropertiTipeDeskripsi
doc.FileFormatFileFormatVarian OneNote: FileFormat.OneNote2010, FileFormat.OneNoteOnline, atau FileFormat.Unknown.
from aspose.note import Document

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

Metadata Tingkat Halaman

Setiap Page objek membawa:

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

Langkah 1: Baca Metadata untuk Setiap Halaman

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

Contoh Lengkap: Laporan Metadata

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

Mendeteksi Sub-Halaman

Di OneNote, sub-halaman secara visual diindentasi di bawah halaman induknya. page.Level properti mencerminkan penataan ini:

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

Nilai level:

  • 0: halaman tingkat atas
  • 1: sub-halaman tingkat pertama (satu indent)
  • 2: sub-halaman tingkat kedua (dua indent)

Catatan

  • Semua cap waktu (CreationTime, LastModifiedTime) adalah datetime objek dalam UTC bila ada.
  • page.Level mengembalikan None untuk halaman di mana level tidak disimpan dalam format biner. Perlakukan None sebagai 0 menggunakan page.Level or 0.

Lihat Juga

 Bahasa Indonesia