Cara Membaca Metadata Halaman dari OneNote dalam Python

Cara Membaca Metadata Halaman dari OneNote dalam Python

OneNote .one fail menyimpan metadata yang anda boleh baca tanpa mengurai DOM dokumen penuh. Pada dokumen tahap, Document.FileFormat memberitahu anda varian OneNote mana yang digunakan oleh fail. Pada halaman tahap, setiap Page membawa pengarang, cap masa penciptaan, cap masa pengubahsuaian terakhir, dan tahap hierarki. Aspose.Note FOSS untuk Python mendedahkan ini melalui Document dan Page kelas.


Prasyarat

pip install aspose-note

Metadata Peringkat Dokumen

Objek Document objek mendedahkan satu sifat metadata:

SifatJenisKeterangan
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 Peringkat Halaman

Setiap Page objek membawa:

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

Mengesan Sub-Halaman

Dalam OneNote, sub-halaman ditandakan secara visual di bawah halaman induknya. page.Level sifat ini mencerminkan susunan 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 Tahap:

  • 0: halaman peringkat atas
  • 1: sub-halaman peringkat pertama (satu inden)
  • 2: sub-halaman peringkat kedua (dua inden)

Nota

  • Semua cap masa (CreationTime, LastModifiedTime) adalah datetime objek dalam UTC apabila ada.
  • page.Level mengembalikan None untuk halaman di mana aras tidak disimpan dalam format binari. Anggap None sebagai 0 menggunakan page.Level or 0.

Lihat Juga

 Bahasa Melayu