چگونه برچسب‌های OneNote را در Python بررسی کنیم

چگونه برچسب‌های OneNote را در Python بررسی کنیم

OneNote به کاربران اجازه می‌دهد محتوا را با برچسب‌های رنگی مانند ستاره‌ها، چک‌باکس‌ها، پرچم‌های مهم و برچسب‌های سفارشی حاشیه‌نویسی کنند. Aspose.Note FOSS for Python این حاشیه‌نویسی‌ها را به عنوان اشیاء NoteTag در گره‌های RichText، Image، AttachedFile و Table از طریق ویژگی .Tags آنها در دسترس قرار می‌دهد. این راهنما نشان می‌دهد چگونه آن‌ها را بخوانید.


راهنمای گام به گام

مرحله ۱: نصب Aspose.Note FOSS برای Python

pip install aspose-note

مرحله ۲: بارگذاری فایل .one

from aspose.note import Document

doc = Document("TaggedNotes.one")
print(f"Pages: {len(list(doc))}")

مرحله ۳: یافتن برچسب‌ها در گره‌های RichText

اکثر برچسب‌ها به بلوک‌های متنی پیوست شده‌اند:

from aspose.note import Document, RichText

doc = Document("TaggedNotes.one")
for rt in doc.GetChildNodes(RichText):
    for tag in rt.Tags:
        print(f"[RichText] Label={tag.Label!r}  Icon={tag.Icon}  text={rt.Text.strip()!r}")

مرحله ۴: یافتن برچسب‌ها در تصاویر

from aspose.note import Document, Image

doc = Document("TaggedNotes.one")
for img in doc.GetChildNodes(Image):
    for tag in img.Tags:
        print(f"[Image] Label={tag.Label!r}  filename={img.FileName!r}")

مرحله 5: یافتن برچسب‌ها در جدول‌ها

from aspose.note import Document, Table

doc = Document("TaggedNotes.one")
for table in doc.GetChildNodes(Table):
    for tag in table.Tags:
        print(f"[Table] Label={tag.Label!r}  widths={[col.Width for col in table.Columns]}")

مرحله 6: جمع‌آوری تمام برچسب‌ها در سراسر سند

from aspose.note import Document, RichText, Image, Table

doc = Document("TaggedNotes.one")
all_tags = []

for rt in doc.GetChildNodes(RichText):
    for tag in rt.Tags:
        all_tags.append({"type": "RichText", "Label": tag.Label,
                         "CompletedTime": tag.CompletedTime, "text": rt.Text.strip()})
for img in doc.GetChildNodes(Image):
    for tag in img.Tags:
        all_tags.append({"type": "Image", "Label": tag.Label,
                         "CompletedTime": tag.CompletedTime, "file": img.FileName})
for table in doc.GetChildNodes(Table):
    for tag in table.Tags:
        all_tags.append({"type": "Table", "Label": tag.Label,
                         "CompletedTime": tag.CompletedTime})

print(f"Total tagged items: {len(all_tags)}")
for item in all_tags:
    print(item)

NoteTag مرجع ویژگی

PropertyTypeDescription
Iconint | Noneشناسه عددی شکل برچسب (ستاره، چک‌باکس، پیکان و غیره)
Labelstr | Noneرشته برچسب قابل خواندن برای انسان (مثلاً "Important"، "To Do")
FontColorint | Noneرنگ متن به صورت عدد صحیح ARGB
Highlightint | Noneرنگ برجسته‌سازی به صورت عدد صحیح ARGB
CreationTimedatetime | Noneزمان ایجاد برچسب
CompletedTimedatetime | Noneزمان تکمیل برچسب (None اگر تکمیل نشده باشد)
StatusTagStatusTagStatus.Completed اگر تکمیل شده باشد، در غیر این صورت TagStatus.Open

فیلتر برچسب‌های تکمیل‌شده در مقابل برچسب‌های در انتظار

برچسب‌هایی که علامت‌گذاری شده‌اند (مانند چک‌باکس‌های «To Do») دارای فیلد غیر None CompletedTime هستند:

from aspose.note import Document, RichText

doc = Document("TaggedNotes.one")
pending, done = [], []

for rt in doc.GetChildNodes(RichText):
    for tag in rt.Tags:
        item = {"Label": tag.Label, "text": rt.Text.strip()}
        if tag.CompletedTime is None:
            pending.append(item)
        else:
            done.append(item)

print(f"Pending: {len(pending)}  Done: {len(done)}")
for p in pending:
    print(f"  [ ] {p['Label']}: {p['text']!r}")
for d in done:
    print(f"  [x] {d['Label']}: {d['text']!r}")

ایجاد یک NoteTag (در حافظه)

متد کارخانه NoteTag.CreateYellowStar() یک گره برچسب ایجاد می‌کند که می‌توانید به محتوای جدید در حافظه پیوست کنید:

from aspose.note import NoteTag

tag = NoteTag.CreateYellowStar()
print(f"Created tag: Icon={tag.Icon}  Label={tag.Label!r}")

ایجاد در حافظه برای سازگاری API مفید است. از آنجا که نوشتن مجدد به .one پشتیبانی نمی‌شود، برچسب‌های ایجاد شده نمی‌توانند در فایل ذخیره شوند.


مشکلات رایج

برچسبی یافت نشد (سند فهرست برچسب‌های خالی را برمی‌گرداند): همهٔ فایل‌های .one حتماً برچسب ندارند. پیش از عیب‌یابی کد، اطمینان حاصل کنید که سند منبع در Microsoft OneNote دارای برچسب‌های قابل مشاهده است.

tag.Label یک رشته خالی است: برخی از اشکال برچسب متن برچسبی در متادیتای فایل ندارند. از tag.Icon برای شناسایی نوع برچسب به‌صورت برنامه‌نویسی استفاده کنید.


منابع مرتبط:

 فارسی