Как да инспектирате етикетите на OneNote в Python
OneNote позволява на потребителите да анотират съдържание с цветни етикети: звезди, отметки, важни флагове и персонализирани етикети. Aspose.Note FOSS за Python излага тези анотации като NoteTag обекти върху RichText, Image, AttachedFile, и Table възли чрез техния .Tags свойство. Това ръководство показва как да ги прочетете.
Ръководство стъпка по стъпка
Стъпка 1: Инсталирайте Aspose.Note FOSS за Python
pip install aspose-noteСтъпка 2: Заредете .one файла
from aspose.note import Document
doc = Document("TaggedNotes.one")
print(f"Pages: {len(list(doc))}")Стъпка 3: Намерете етикети в 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}")Стъпка 4: Намерете етикети в изображения
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
| Свойство | Тип | Описание |
|---|---|---|
Icon | `int | None` |
Label | `str | None` |
FontColor | `int | None` |
Highlight | `int | None` |
CreationTime | `datetime | None` |
CompletedTime | `datetime | 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 не се поддържа, създадените етикети не могат да бъдат запазени във файл.
Чести проблеми
Не са намерени етикети (документът връща празни списъци с Tags): Не всички .one файловете съдържат етикети. Уверете се, че изходният документ има етикети, видими в Microsoft OneNote, преди да отстранявате кода.
tag.Label е празен низ: Някои форми на етикети нямат текстов етикет във файловите метаданни. Използвайте tag.Icon за да идентифицирате типа на етикета програмно.
Свързани ресурси: