Jak prozkoumat značky OneNote v Python
OneNote umožňuje uživatelům anotovat obsah barevnými značkami: hvězdičky, zaškrtávací políčka, důležité příznaky a vlastní štítky. Aspose.Note FOSS pro Python zpřístupňuje tyto anotace jako NoteTag objekty na RichText, Image, AttachedFile, a Table uzly prostřednictvím jejich .Tags vlastnosti. Tento průvodce ukazuje, jak je číst.
Průvodce krok za krokem
Krok 1: Nainstalujte Aspose.Note FOSS pro Python
pip install aspose-noteKrok 2: Načtěte soubor .one
from aspose.note import Document
doc = Document("TaggedNotes.one")
print(f"Pages: {len(list(doc))}")Krok 3: Najděte štítky na uzlech RichText
Většina štítků je připojena k textovým blokům:
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}")Krok 4: Najděte štítky na obrázcích
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}")Krok 5: Najděte štítky v tabulkách
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]}")Krok 6: Shromážděte všechny štítky v celém dokumentu
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)Reference vlastností NoteTag
| Vlastnost | Typ | Popis |
|---|---|---|
Icon | `int | None` |
Label | `str | None` |
FontColor | `int | None` |
Highlight | `int | None` |
CreationTime | `datetime | None` |
CompletedTime | `datetime | None` |
Status | TagStatus | TagStatus.Completed pokud je dokončena, jinak TagStatus.Open |
Filtrujte dokončené a čekající štítky
Štítky, které byly zaškrtnuty (např. zaškrtávací políčka „To Do“) mají ne-None CompletedTime pole:
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}")Vytvořte NoteTag (v paměti)
Tovární metoda NoteTag.CreateYellowStar() vytvoří uzel značky, který můžete připojit k novému obsahu v paměti:
from aspose.note import NoteTag
tag = NoteTag.CreateYellowStar()
print(f"Created tag: Icon={tag.Icon} Label={tag.Label!r}")Vytváření v paměti je užitečné pro kompatibilitu API. Vzhledem k tomu, že zápis zpět do .one není podporováno, vytvořené značky nelze uložit do souboru.
Běžné problémy
Žádné značky nenalezeny (dokument vrací prázdné seznamy Tags): Ne všechny .one soubory obsahují značky. Ověřte, že zdrojový dokument má značky viditelné v Microsoft OneNote, než začnete řešit problémy s kódem.
tag.Label je prázdný řetězec: Některé tvary značek nemají v metadatech souboru textový štítek. Použijte tag.Icon k identifikaci typu značky programově.
Související zdroje: