Hur man inspekterar OneNote-taggar i Python

Hur man inspekterar OneNote-taggar i Python

OneNote låter användare kommentera innehåll med färgade taggar: stjärnor, kryssrutor, viktiga flaggor och anpassade etiketter. Aspose.Note FOSS för Python exponerar dessa kommentarer som NoteTag objekt på RichText, Image, Table, och OutlineElement noder. Den här guiden visar hur man läser dem.


Steg-för-steg-guide

Steg 1: Installera Aspose.Note FOSS för Python

pip install aspose-note

Steg 2: Ladda .one-filen

from aspose.note import Document

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

Steg 3: Hitta taggar på RichText-noder

De flesta taggar är fästa vid textblock:

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}  shape={tag.shape}  text={rt.Text.strip()!r}")

Steg 4: Hitta taggar 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: Hitta taggar 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: Hitta taggar på OutlineElements

from aspose.note import Document, OutlineElement

doc = Document("TaggedNotes.one")
for oe in doc.GetChildNodes(OutlineElement):
    for tag in oe.Tags:
        print(f"[OutlineElement] label={tag.label!r}  completed={tag.completed}")

Steg 7: Samla alla taggar i hela dokumentet

from aspose.note import Document, RichText, Image, Table, OutlineElement

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,
                         "completed": tag.completed, "text": rt.Text.strip()})
for img in doc.GetChildNodes(Image):
    for tag in img.Tags:
        all_tags.append({"type": "Image", "label": tag.label,
                         "completed": tag.completed, "file": img.FileName})
for table in doc.GetChildNodes(Table):
    for tag in table.Tags:
        all_tags.append({"type": "Table", "label": tag.label,
                         "completed": tag.completed})

print(f"Total tagged items: {len(all_tags)}")
for item in all_tags:
    print(item)

Referens för NoteTag-egenskaper

EgenskapTypBeskrivning
shapeN/ATaggform identifierare (stjärna, kryssruta, pil, etc.)
labelstrMänskligt läsbar etikettsträng (t.ex. "Important", "To Do")
text_colorintTextfärg som ARGB-heltal
highlight_colorintMarkeringsfärg som ARGB-heltal
created`intNone`
completed`intNone`

Filtrera slutförda vs väntande taggar

Taggar som har markerats (som ”Att göra”-kryssrutor) har ett icke-None completed fält:

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

Skapa en NoteTag (i minnet)

Fabrikmetoden NoteTag.CreateYellowStar() skapar en taggnod som du kan bifoga till nytt innehåll i minnet:

from aspose.note import NoteTag

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

Skapande i minnet är användbart för API-kompatibilitet. Eftersom återskrivning till .one stöds inte, skapade taggar kan inte sparas till fil.


Vanliga problem

Inga taggar hittades (dokumentet returnerar tomma Tags-listor): Inte alla .one filer innehåller taggar. Verifiera att källdokumentet har taggar synliga i Microsoft OneNote innan du felsöker koden.

tag.label är en tom sträng: Vissa taggformer har ingen textetikett i filens metadata. Använd tag.shape för att identifiera taggtypen programatiskt.


Relaterade resurser:

 Svenska