Wie man OneNote‑Tags in Python inspiziert
OneNote ermöglicht es Benutzern, Inhalte mit farbigen Markierungen zu annotieren: Sterne, Kontrollkästchen, wichtige Flaggen und benutzerdefinierte Beschriftungen. Aspose.Note FOSS for Python stellt diese Annotationen als NoteTag‑Objekte auf den Knoten RichText, Image, AttachedFile und Table über deren .Tags‑Eigenschaft bereit. Dieser Leitfaden zeigt, wie man sie liest.
Schritt-für-Schritt-Anleitung
Schritt 1: Installieren Sie Aspose.Note FOSS für Python
pip install aspose-noteSchritt 2: Laden Sie die .one-Datei
from aspose.note import Document
doc = Document("TaggedNotes.one")
print(f"Pages: {len(list(doc))}")Schritt 3: Tags auf RichText‑Knoten finden
Die meisten Tags sind Textblöcken zugeordnet:
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: Tags auf Bildern 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: Tags in 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 gesamten 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 Property Referenz
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
Icon | int | None | Numerischer Tag-Form-Identifikator (Stern, Kontrollkästchen, Pfeil usw.) |
Label | str | None | Menschenlesbare Beschriftungszeichenkette (z. B. "Important", "To Do") |
FontColor | int | None | Textfarbe als ARGB‑Ganzzahl |
Highlight | int | None | Hervorhebungsfarbe als ARGB‑Ganzzahl |
CreationTime | datetime | None | Zeitpunkt, zu dem das Tag erstellt wurde |
CompletedTime | datetime | None | Zeitpunkt, zu dem das Tag abgeschlossen wurde (None, falls nicht abgeschlossen) |
Status | TagStatus | TagStatus.Completed, falls abgeschlossen, sonst TagStatus.Open |
Filter für abgeschlossene vs ausstehende Tags
Tags, die abgehakt wurden (wie “To Do”-Kontrollkästchen) haben ein nicht-None CompletedTime 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}")Erstelle ein NoteTag (Im Speicher)
Die Fabrikmethode NoteTag.CreateYellowStar() erstellt einen Tag‑Knoten, den Sie an neuen Inhalt im Speicher anhängen können:
from aspose.note import NoteTag
tag = NoteTag.CreateYellowStar()
print(f"Created tag: Icon={tag.Icon} Label={tag.Label!r}")Die In‑Memory‑Erstellung ist nützlich für die API‑Kompatibilität. Da das Zurückschreiben nach
.onenicht unterstützt wird, können erstellte Tags nicht in einer Datei gespeichert werden.
Häufige Probleme
Keine Tags gefunden (Dokument gibt leere Tag-Listen zurück): Nicht alle .one-Dateien enthalten Tags. Vergewissern Sie sich, dass das Quell-Dokument Tags in Microsoft OneNote sichtbar hat, bevor Sie den Code debuggen.
tag.Label ist ein leerer String: Einige Tag‑Formen haben kein Textlabel in den Dateimetadaten. Verwenden Sie tag.Icon, um den Tag‑Typ programmgesteuert zu identifizieren.
Verwandte Ressourcen: