Hvordan inspisere OneNote‑tagger i Python

Hvordan inspisere OneNote‑tagger i Python

OneNote lar brukere merke innhold med fargede tagger: stjerner, avmerkingsbokser, viktige flagg og egendefinerte etiketter. Aspose.Note FOSS for Python eksponerer disse merkene som NoteTag objekter på RichText, Image, AttachedFile, og Table noder via deres .Tags egenskap. Denne guiden viser hvordan du leser dem.


Steg-for-steg guide

Steg 1: Installer Aspose.Note FOSS for Python

pip install aspose-note

Steg 2: Last inn .one-filen

from aspose.note import Document

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

Steg 3: Finn tagger på RichText‑noder

De fleste tagger er festet til tekstblokker:

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

Steg 4: Finn tagger på bilder

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

Steg 5: Finn tagger 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]}")

Steg 6: Samle alle tagger 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‑egenskapsreferanse

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

Filtrer fullførte vs ventende tagger

Tagger som er krysset av (som “To Do”-avmerkingsbokser) 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}")

Opprett en NoteTag (i minnet)

Factory-metoden NoteTag.CreateYellowStar() oppretter en taggnode du kan feste til nytt innhold i minnet:

from aspose.note import NoteTag

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

Opprettelse i minnet er nyttig for API-kompatibilitet. Siden skriving tilbake til .one støttes ikke, opprettede tagger kan ikke lagres til fil.


Vanlige problemer

Ingen tagger funnet (dokumentet returnerer tomme Tags-lister): Ikke alle .one filer inneholder tagger. Verifiser at kilde-dokumentet har tagger synlige i Microsoft OneNote før du feilsøker koden.

tag.Label er en tom streng: Noen taggformer har ikke en tekstetikett i filmetadataene. Bruk tag.Icon for å identifisere taggtypen programmatisk.


Relaterte ressurser:

 Norsk