Πώς να Εξετάσετε τις Ετικέτες OneNote στο Python

Πώς να Εξετάσετε τις Ετικέτες 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`intNone`
Label`strNone`
FontColor`intNone`
Highlight`intNone`
CreationTime`datetimeNone`
CompletedTime`datetimeNone`
StatusTagStatusTagStatus.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 για να εντοπίσετε τον τύπο ετικέτας προγραμματιστικά.


Σχετικοί Πόροι:

 Ελληνικά