كيفية قراءة بيانات تعريف الصفحة من OneNote في Python
OneNote .one تخزن الملفات بيانات التعريف التي يمكنك قراءتها دون تحليل شجرة DOM الكاملة للمستند. في المستند المستوى،, Document.FileFormat يخبرك أي نسخة من OneNote يستخدمها الملف. في الصفحة المستوى، كل Page يحمل المؤلف، طابع زمن الإنشاء، طابع زمن آخر تعديل، ومستوى الهرمية. Aspose.Note FOSS لـ Python يكشف عن هذه من خلال Document و Page الفئات.
المتطلبات المسبقة
pip install aspose-noteبيانات تعريف على مستوى المستند
ال Document الكائن يعرض خاصية بيانات وصفية واحدة:
| خاصية | النوع | الوصف |
|---|---|---|
doc.FileFormat | FileFormat | متغيّر OneNote: FileFormat.OneNote2010, FileFormat.OneNoteOnline, أو FileFormat.Unknown. |
from aspose.note import Document
doc = Document("MyNotes.one")
print(f"File format: {doc.FileFormat}")بيانات تعريف على مستوى الصفحة
كل Page الكائن يحمل:
| خاصية | النوع | الوصف |
|---|---|---|
page.Author | `str | None` |
page.CreationTime | `datetime | None` |
page.LastModifiedTime | `datetime | None` |
page.Level | `int | None` |
الخطوة 1: قراءة بيانات التعريف لكل صفحة
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}")مثال كامل: تقرير بيانات التعريف
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")اكتشاف الصفحات الفرعية
في OneNote، يتم إزاحة الصفحات الفرعية بصريًا تحت الصفحة الأصلية. page.Level الخاصية تعكس هذا التداخل:
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)'}")قيم المستوى:
0: صفحة المستوى الأعلى1: صفحة فرعية من المستوى الأول (مسافة واحدة)2: صفحة فرعية من المستوى الثاني (مسافتين)
ملاحظات
- جميع الطوابع الزمنية (
CreationTime,LastModifiedTime) هيdatetimeكائنات بتوقيت UTC عندما تكون موجودة. page.LevelتُعيدNoneللصفحات التي لم يتم تخزين المستوى فيها في الصيغة الثنائية. اعتبرNoneكـ0باستخدامpage.Level or 0.