Cara Memeriksa Tag OneNote dalam Python

Cara Memeriksa Tag OneNote dalam Python

OneNote membenarkan pengguna menandakan kandungan dengan tag berwarna: bintang, kotak semak, bendera penting, dan label khusus. Aspose.Note FOSS untuk Python mendedahkan anotasi ini sebagai objek NoteTag pada nod RichText, Image, AttachedFile, dan Table melalui sifat .Tags mereka. Panduan ini menunjukkan cara membacanya.


Panduan Langkah demi Langkah

Langkah 1: Pasang Aspose.Note FOSS untuk Python

pip install aspose-note

Langkah 2: Muat Fail .one

from aspose.note import Document

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

Langkah 3: Cari Tag pada Nod RichText

Kebanyakan tag dilampirkan kepada blok teks:

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

Langkah 4: Cari Tag pada Imej

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

Langkah 5: Cari Tag pada Jadual

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

Langkah 6: Kumpulkan Semua Tag Merentasi Dokumen

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 Rujukan Sifat

SifatJenisKeterangan
Iconint | NonePengenal bentuk tag berangka (bintang, kotak semak, anak panah, dll.)
Labelstr | NoneRentetan label yang boleh dibaca manusia (contoh: "Important", "To Do")
FontColorint | NoneWarna teks sebagai integer ARGB
Highlightint | NoneWarna sorotan sebagai integer ARGB
CreationTimedatetime | NoneBilakah tag dicipta
CompletedTimedatetime | NoneBilakah tag diselesaikan (None jika belum selesai)
StatusTagStatusTagStatus.Completed jika selesai, jika tidak TagStatus.Open

Tapis Tag Selesai vs Tertunda

Tag yang telah ditanda (seperti kotak pilihan “To Do”) mempunyai medan bukan-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}")

Cipta NoteTag (Dalam Memori)

Kaedah kilang NoteTag.CreateYellowStar() mencipta nod tag yang anda boleh lampirkan kepada kandungan baru dalam memori:

from aspose.note import NoteTag

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

Penciptaan dalam memori berguna untuk keserasian API. Oleh kerana menulis kembali ke .one tidak disokong, tag yang dibuat tidak dapat disimpan ke fail.


Isu Umum

Tiada tag ditemui (dokumen mengembalikan senarai Tag kosong): Tidak semua fail .one mengandungi tag. Sahkan dokumen sumber mempunyai tag yang dapat dilihat dalam Microsoft OneNote sebelum menyelesaikan masalah kod.

tag.Label ialah rentetan kosong: Beberapa bentuk tag tidak mempunyai label teks dalam metadata fail. Gunakan tag.Icon untuk mengenal pasti jenis tag secara programatik.


Sumber Berkaitan:

 Bahasa Melayu