Wie man OneNote-Tags in Python überprüft

Wie man OneNote-Tags in Python überprüft

OneNote ermöglicht es Benutzern, Inhalte mit farbigen Tags zu annoteren: Sterne, Kontrollkästen, wichtige Flaggen und benutzerdefinierte Etiketten. Aspose.Note FOSS für Python zeigt diese Anmerkungen als NoteTag Gegenstände auf RichText, Image, AttachedFile,und . Table Die Anwendungen für die .Tags Diese Anleitung zeigt, wie man sie liest.


Schritt für Schritte

Schritt 1: Installieren Sie Aspose.Note FOSS für Python

pip install aspose-note

Schritt 2: Laden der .one-Datei ein

from aspose.note import Document

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

Schritt 3: Tag-Notiz auf RichText-Knoten finden

Die meisten Tags sind an Textblöcken angebracht:

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

Schritt 4: Auf Bildern Tags finden

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

Schritt 5: Auf Tabellen finden

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

Schritt 6: Alle Tags im Dokument sammeln

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-Eigenschaftsbezug

Immobilien und VermögenswerteTyp derBeschreibung
Icon`intNone`
Label`strNone`
FontColor`intNone`
Highlight`intNone`
CreationTime`datetimeNone`
CompletedTime`datetimeNone`
StatusTagStatusTagStatus.Completed wenn ausgefüllt, sonst: TagStatus.Open

Filter abgeschlossen gegen ausstehende Tags

Tags, die abgesehen wurden (wie “zu tun” Kontrollkästchen) haben eine nicht-None DieCompletedTime Feld:

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

Erstellen eines NoteTags (im Speicher)

Die Fabrikmethode NoteTag.CreateYellowStar() erstellt einen Tag-Knoten, den Sie an neuen Inhalten im Speicher befestigen können:

from aspose.note import NoteTag

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

In-Memory Erstellung ist nützlich für API Kompatibilität. Seit dem Schreiben zurück zu .one wird nicht unterstützt, erstellte Tags können nicht auf Dateien angehalten werden.


Häufige Probleme

Keine Tags gefunden (Dokument gibt leere Tag-Listen zurück):Nicht alle: .one Die Daten in den Dateien enthalten Tags. Stellen Sie sicher, dass das Quelldokument tags im Microsoft OneNote sichtbar hat, bevor Sie den Code beheben.

tag.Label ist eine leere Zeichenfolge:Einige Tag-Formen haben keine Textetikette in den Metadaten. tag.Icon die Kennzeichnung des Tagtyps programmatisch zu identifizieren.


Verwandte Ressourcen:

 Deutsch