Cara Membaca Metadata Halaman dari OneNote dalam Python
OneNote .one fail menyimpan metadata yang anda boleh baca tanpa mengurai DOM dokumen penuh. Pada peringkat dokumen, Document.FileFormat memberitahu anda varian OneNote mana yang digunakan oleh fail. Pada peringkat halaman, setiap Page membawa penulis, cap masa penciptaan, cap masa pengubahsuaian terakhir, dan tahap hierarki. Aspose.Note FOSS untuk Python mendedahkan ini melalui kelas Document dan Page.
Prasyarat
pip install aspose-noteMetadata Peringkat Dokumen
Objek Document memaparkan satu sifat metadata:
| Sifat | Jenis | Keterangan |
|---|---|---|
doc.FileFormat | FileFormat | Varian 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 objek Page membawa:
| Property | Type | Description |
|---|---|---|
page.Author | str | None | Nama paparan pengguna yang mencipta atau memiliki halaman tersebut. |
page.CreationTime | datetime | None | Bila halaman itu dicipta. Mengembalikan objek Python datetime dalam UTC. |
page.LastModifiedTime | datetime | None | Bila halaman itu terakhir diubah suai. |
page.Level | int | None | Tahap inden sub-halaman. 0 = halaman peringkat atas, 1 = sub-halaman peringkat pertama, 2 = peringkat kedua, dll. |
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. Sifat page.Level 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 atas1: sub‑halaman peringkat pertama (satu inden)2: sub‑halaman peringkat kedua (dua inden)
Catatan
- Semua cap masa (
CreationTime,LastModifiedTime) adalah objekdatetimedalam UTC apabila ada. page.LevelmengembalikanNoneuntuk halaman di mana aras tidak disimpan dalam format binari. AnggapNonesebagai0menggunakanpage.Level or 0.