Python में OneNote से पेज मेटाडाटा कैसे पढ़ें

Python में OneNote से पेज मेटाडाटा कैसे पढ़ें

OneNote .one फ़ाइलें मेटाडेटा संग्रहीत करती हैं जिसे आप पूर्ण दस्तावेज़ DOM को पार्स किए बिना पढ़ सकते हैं। At the document level, Document.FileFormat आपको बताता है कि फ़ाइल कौन सा OneNote वैरिएंट उपयोग करती है। At the page level, प्रत्येक Page लेखक, निर्माण टाइमस्टैम्प, अंतिम‑परिवर्तित टाइमस्टैम्प, और पदानुक्रम स्तर को ले जाता है। Aspose.Note FOSS for Python इनको Document और Page क्लासों के माध्यम से उजागर करता है।


पूर्वापेक्षाएँ

pip install aspose-note

दस्तावेज़-स्तरीय मेटाडेटा

Document ऑब्जेक्ट एक मेटाडेटा प्रॉपर्टी उजागर करता है:

प्रॉपर्टीप्रकारविवरण
doc.FileFormatFileFormatOneNote संस्करण: FileFormat.OneNote2010, FileFormat.OneNoteOnline, या FileFormat.Unknown
from aspose.note import Document

doc = Document("MyNotes.one")
print(f"File format: {doc.FileFormat}")

पृष्ठ‑स्तर मेटाडेटा

प्रत्येक Page ऑब्जेक्ट में होता है:

PropertyTypeDescription
page.Authorstr | Noneपृष्ठ बनाने वाले या उसके मालिक उपयोगकर्ता का प्रदर्शित नाम।
page.CreationTimedatetime | Noneपृष्ठ कब बनाया गया था। UTC में एक Python datetime ऑब्जेक्ट लौटाता है।
page.LastModifiedTimedatetime | Noneपृष्ठ को अंतिम बार कब संशोधित किया गया था।
page.Levelint | Noneउप-पृष्ठ इंडेंट स्तर। 0 = शीर्ष-स्तर पृष्ठ, 1 = प्रथम-स्तर उप-पृष्ठ, 2 = द्वितीय-स्तर, आदि।

चरण 1: प्रत्येक पृष्ठ के लिए मेटाडेटा पढ़ें

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

पूर्ण उदाहरण: मेटाडेटा रिपोर्ट

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

उप‑पृष्ठों का पता लगाना

OneNote में, उप‑पृष्ठ अपने मूल पृष्ठ के नीचे दृश्य रूप से इंडेंटेड होते हैं। page.Level प्रॉपर्टी इस नेस्टिंग को दर्शाती है:

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

स्तर मान:

  • 0: शीर्ष-स्तर पृष्ठ
  • 1: प्रथम-स्तर उप-पृष्ठ (एक इंडेंट)
  • 2: द्वितीय-स्तर उप-पृष्ठ (दो इंडेंट)

नोट्स

  • सभी टाइमस्टैम्प (CreationTime, LastModifiedTime) उपस्थित होने पर UTC में datetime ऑब्जेक्ट होते हैं।
  • page.Level उन पृष्ठों के लिए None लौटाता है जहाँ स्तर बाइनरी फ़ॉर्मेट में संग्रहीत नहीं था। None को 0 के रूप में page.Level or 0 का उपयोग करके मानें।

संबंधित देखें

 हिन्दी