Πώς να Εξετάσετε τις Ετικέτες OneNote στο Python
Το OneNote επιτρέπει στους χρήστες να σχολιάζουν το περιεχόμενο με χρωματιστές ετικέτες: αστέρια, πλαίσια ελέγχου, σημαντικές σημαίες και προσαρμοσμένες ετικέτες. Aspose.Note FOSS για Python εκθέτει αυτές τις σημειώσεις ως NoteTag αντικείμενα στο RichText, Image, AttachedFile, και Table κόμβοι μέσω του/της .Tags ιδιότητα. Αυτός ο οδηγός δείχνει πώς να τα διαβάσετε.
Οδηγός βήμα προς βήμα
Βήμα 1: Εγκατάσταση του Aspose.Note FOSS για Python
pip install aspose-noteΒήμα 2: Φόρτωση του αρχείου .one
from aspose.note import Document
doc = Document("TaggedNotes.one")
print(f"Pages: {len(list(doc))}")Βήμα 3: Εύρεση ετικετών σε κόμβους RichText
Οι περισσότερες ετικέτες είναι συνδεδεμένες με μπλοκ κειμένου:
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}")Βήμα 4: Εύρεση ετικετών σε εικόνες
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}")Βήμα 5: Εύρεση ετικετών σε πίνακες
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]}")Βήμα 6: Συλλογή όλων των ετικετών σε όλο το έγγραφο
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
| Ιδιότητα | Τύπος | Περιγραφή |
|---|---|---|
Icon | `int | None` |
Label | `str | None` |
FontColor | `int | None` |
Highlight | `int | None` |
CreationTime | `datetime | None` |
CompletedTime | `datetime | None` |
Status | TagStatus | TagStatus.Completed αν ολοκληρώθηκε, αλλιώς TagStatus.Open |
Φιλτράρισμα ολοκληρωμένων vs εκκρεμών ετικετών
Οι ετικέτες που έχουν τσεκαριστεί (όπως τα πλαίσια ελέγχου «To Do») έχουν ένα μη-None CompletedTime πεδίο:
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}")Δημιουργία NoteTag (στη μνήμη)
Η μέθοδος κατασκευής NoteTag.CreateYellowStar() δημιουργεί έναν κόμβο ετικέτας που μπορείτε να συνδέσετε σε νέο περιεχόμενο στη μνήμη:
from aspose.note import NoteTag
tag = NoteTag.CreateYellowStar()
print(f"Created tag: Icon={tag.Icon} Label={tag.Label!r}")Η δημιουργία στη μνήμη είναι χρήσιμη για τη συμβατότητα του API. Δεδομένου ότι η επαναγραφή στο .one δεν υποστηρίζεται, οι δημιουργημένες ετικέτες δεν μπορούν να αποθηκευτούν σε αρχείο.
Κοινά προβλήματα
Δεν βρέθηκαν ετικέτες (το έγγραφο επιστρέφει κενές λίστες Tags): Δεν όλα .one αρχεία περιέχουν ετικέτες. Επαληθεύστε ότι το πηγαίο έγγραφο έχει ετικέτες ορατές στο Microsoft OneNote πριν εντοπίσετε το πρόβλημα του κώδικα.
tag.Label είναι μια κενή συμβολοσειρά: Ορισμένα σχήματα ετικετών δεν έχουν ετικέτα κειμένου στα μεταδεδομένα του αρχείου. Χρησιμοποιήστε tag.Icon για να εντοπίσετε τον τύπο ετικέτας προγραμματιστικά.
Σχετικοί Πόροι: