Python'da OneNote'dan Sayfa Meta Verilerini Okuma
OneNote .one dosyaları, tam belge DOM’unu ayrıştırmadan okuyabileceğiniz meta verileri saklar. belge seviyesinde, Document.FileFormat dosyanın hangi OneNote varyantını kullandığını gösterir. sayfa seviyesinde, her Page yazar, oluşturulma zaman damgası, son değiştirilme zaman damgası ve hiyerarşi seviyesini taşır. Aspose.Note FOSS for Python, bunları Document ve Page sınıfları aracılığıyla sunar.
Önkoşullar
pip install aspose-noteBelge Düzeyi Üst Verileri
Document nesnesi bir meta veri özelliği sunar:
| Özellik | Tür | Açıklama |
|---|---|---|
doc.FileFormat | FileFormat | OneNote varyantı: FileFormat.OneNote2010, FileFormat.OneNoteOnline veya FileFormat.Unknown. |
from aspose.note import Document
doc = Document("MyNotes.one")
print(f"File format: {doc.FileFormat}")Sayfa Düzeyi Meta Verileri
Her Page nesnesi şunları taşır:
| Özellik | Tür | Açıklama |
|---|---|---|
page.Author | str | None | Sayfayı oluşturan veya sahip olan kullanıcının görüntülenen adı. |
page.CreationTime | datetime | None | Sayfanın oluşturulduğu zaman. UTC’de bir Python datetime nesnesi döndürür. |
page.LastModifiedTime | datetime | None | Sayfanın en son değiştirildiği zaman. |
page.Level | int | None | Alt sayfa girinti seviyesi. 0 = üst düzey sayfa, 1 = birinci düzey alt sayfa, 2 = ikinci düzey, vb. |
Adım 1: Her Sayfa İçin Meta Verileri Oku
from aspose.note import Document, Page
doc = Document("ProjectNotes.one")
for i, page in enumerate(doc, start=1):
title = ""
if page.Title and page.Title.TitleText:
title = page.Title.TitleText.Text.strip()
level = page.Level or 0
indent = " " * level
author = page.Author or "(unknown)"
created = page.CreationTime.strftime("%Y-%m-%d") if page.CreationTime else "(none)"
modified = page.LastModifiedTime.strftime("%Y-%m-%d %H:%M") if page.LastModifiedTime else "(none)"
print(f"{indent}[{i}] {title or '(untitled)'}")
print(f"{indent} Author: {author}")
print(f"{indent} Created: {created}")
print(f"{indent} Modified: {modified}")
print(f"{indent} Level: {level}")Tam Örnek: Meta Veri Raporu
from aspose.note import Document
def print_metadata_report(one_path: str) -> None:
doc = Document(one_path)
print()
for i, page in enumerate(doc, start=1):
title = ""
if page.Title and page.Title.TitleText:
title = page.Title.TitleText.Text.strip()
level = page.Level or 0
prefix = " " * level + f"[{i}]"
parts = [prefix, f'"{title or "(untitled)"}"']
if page.Author:
parts.append(f"by {page.Author}")
if page.CreationTime:
parts.append(f"created {page.CreationTime.strftime('%Y-%m-%d')}")
if page.LastModifiedTime:
parts.append(f"modified {page.LastModifiedTime.strftime('%Y-%m-%d')}")
print(" ".join(parts))
print_metadata_report("ProjectNotes.one")Alt Sayfaları Algılama
OneNote’ta, alt sayfalar görsel olarak üst sayfalarının altında girintili olarak gösterilir. page.Level özelliği bu iç içeliği yansıtır:
from aspose.note import Document
doc = Document("MyNotes.one")
for page in doc:
level = page.Level or 0
title = ""
if page.Title and page.Title.TitleText:
title = page.Title.TitleText.Text.strip()
indent = " " * level
marker = "├─" if level > 0 else "•"
print(f"{indent}{marker} {title or '(untitled)'}")Seviye değerleri:
0: üst düzey sayfa1: birinci düzey alt sayfa (bir girinti)2: ikinci düzey alt sayfa (iki girinti)
Notlar
- Tüm zaman damgaları (
CreationTime,LastModifiedTime) mevcut olduğunda UTC’dedatetimenesneleridir. page.Level, seviyenin ikili formatta depolanmadığı sayfalar içinNonedöndürür.None‘i0olarak,page.Level or 0kullanarak ele alın.