چگونه برچسبهای 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 مرجع ویژگی
| Property | Type | Description |
|---|---|---|
Icon | int | None | شناسه عددی شکل برچسب (ستاره، چکباکس، پیکان و غیره) |
Label | str | None | رشته برچسب قابل خواندن برای انسان (مثلاً "Important"، "To Do") |
FontColor | int | None | رنگ متن به صورت عدد صحیح ARGB |
Highlight | int | None | رنگ برجستهسازی به صورت عدد صحیح ARGB |
CreationTime | datetime | None | زمان ایجاد برچسب |
CompletedTime | datetime | None | زمان تکمیل برچسب (None اگر تکمیل نشده باشد) |
Status | TagStatus | TagStatus.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 برای شناسایی نوع برچسب بهصورت برنامهنویسی استفاده کنید.
منابع مرتبط: