كيفية قراءة بيانات تعريف الصفحة من OneNote في Python

كيفية قراءة بيانات تعريف الصفحة من OneNote في Python

OneNote .one تخزن الملفات بيانات التعريف التي يمكنك قراءتها دون تحليل شجرة DOM الكاملة للمستند. في المستند المستوى،, Document.FileFormat يخبرك أي نسخة من OneNote يستخدمها الملف. في الصفحة المستوى، كل Page يحمل المؤلف، طابع زمن الإنشاء، طابع زمن آخر تعديل، ومستوى الهرمية. Aspose.Note FOSS لـ Python يكشف عن هذه من خلال Document و Page الفئات.


المتطلبات المسبقة

pip install aspose-note

بيانات تعريف على مستوى المستند

ال Document الكائن يعرض خاصية بيانات وصفية واحدة:

خاصيةالنوعالوصف
doc.FileFormatFileFormatمتغيّر 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`strNone`
page.CreationTime`datetimeNone`
page.LastModifiedTime`datetimeNone`
page.Level`intNone`

الخطوة 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.

انظر أيضًا

 العربية