Sådan inspicerer du OneNote-tags i Python

Sådan inspicerer du OneNote-tags i Python

OneNote lader brugere annotere indhold med farvede tags: stjerner, afkrydsningsfelter, vigtige flag og brugerdefinerede etiketter. Aspose.Note FOSS for Python eksponerer disse annotationer som NoteTag objekter på RichText, Image, AttachedFile, og Table noder via deres .Tags egenskab. Denne vejledning viser, hvordan man læser dem.


Trin-for-trin guide

Trin 1: Installer Aspose.Note FOSS for Python

pip install aspose-note

Trin 2: Indlæs .one-filen

from aspose.note import Document

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

Trin 3: Find mærker på RichText‑noder

De fleste mærker er knyttet til tekstblokke:

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}")

Trin 4: Find mærker på billeder

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}")

Trin 5: Find mærker på tabeller

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]}")

Trin 6: Indsaml alle mærker i dokumentet

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‑egenskabsreference

EgenskabTypeBeskrivelse
Icon`intNone`
Label`strNone`
FontColor`intNone`
Highlight`intNone`
CreationTime`datetimeNone`
CompletedTime`datetimeNone`
StatusTagStatusTagStatus.Completed hvis fuldført, ellers TagStatus.Open

Filtrer fuldførte vs ventende mærker

Tags, der er markeret (som “To Do”-afkrydsningsfelter), har en non-None CompletedTime felt:

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}")

Opret et NoteTag (i hukommelsen)

Fabriksmetoden NoteTag.CreateYellowStar() opretter en tag-node, som du kan vedhæfte til nyt indhold i hukommelsen:

from aspose.note import NoteTag

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

Oprettelse i hukommelsen er nyttig for API-kompatibilitet. Da skrivning tilbage til .one understøttes ikke, kan oprettede tags ikke gemmes til fil.


Almindelige problemer

Ingen tags fundet (dokumentet returnerer tomme Tags-lister): Ikke alle .one filer indeholder tags. Bekræft at kilde-dokumentet har tags synlige i Microsoft OneNote, før du fejlsøger koden.

tag.Label er en tom streng: Nogle tagformer har ingen tekstetiket i filens metadata. Brug tag.Icon til at identificere tag-typen programmatisk.


Relaterede ressourcer:

 Dansk