معرفی

Aspose.Note FOSS برای Python (aspose-note روی PyPI) یک کتابخانهٔ رایگان با مجوز MIT برای خواندن فایل‌های Microsoft OneNote .one و خروجی به PDF به صورت خالص Python است. نسخهٔ ۲۶.۳.۲ شامل یک مدل شیء سند کامل است که صفحات، فهرست‌ها، گره‌های متن غنی، تصاویر و فایل‌های پیوست‌شده را پوشش می‌دهد — بدون نیاز به نصب Microsoft Office یا وابستگی به ویندوز.


ویژگی‌های کلیدی

بارگذاری سند و تشخیص قالب

Document ریشهٔ مدل شیء است. یک مسیر فایل را پاس دهید تا هر قالب پشتیبانی‌شدهٔ OneNote را بارگذاری کنید. ویژگی FileFormat گزارش می‌دهد که کدام قالب شناسایی شده است.

from aspose.note import Document, FileFormat

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

پیمایش صفحات و عناوین

صفحات گره‌های Page هستند که مستقیماً زیر Document قرار دارند. هر Page متادیتاهایی نظیر Author، CreationTime و Title را نشان می‌دهد. گرهٔ Title به نوبهٔ خود TitleText، TitleDate و TitleTime را به عنوان فرزندان RichText فراهم می‌کند.

from aspose.note import Document, Page

doc = Document("notebook.one")
for page in doc.GetChildNodes(Page):
    print(f"Author  : {page.Author}")
    print(f"Created : {page.CreationTime}")
    if page.Title and page.Title.TitleText:
        print(f"Title   : {page.Title.TitleText}")

خواندن محتوای متن غنی

RichText گره‌ها گره‌های برگ هستند که محتوای متن واقعی را حمل می‌کنند. یک شیء RichText را با یک حلقه استاندارد for تکرار کنید — هر مورد یک بخش رشته‌ای است. از Append() برای افزودن متن جدید با یک سبک استفاده کنید.

from aspose.note import Document, Page, Outline, RichText

doc = Document("notebook.one")
for page in doc.GetChildNodes(Page):
    for rt in page.GetChildNodes(RichText):
        text = "".join(rt)
        if text.strip():
            print(text[:120])

ویژگی‌های طرح کلی

Outline گره‌ها مختصات طرح را نشان می‌دهند: HorizontalOffset، VerticalOffset، MaxWidth، MaxHeight و MinWidth. این موارد برای استخراج آگاه از طرح یا ترکیب مجدد صفحات مفید هستند.

from aspose.note import Document, Outline

doc = Document("notebook.one")
for outline in doc.GetChildNodes(Outline):
    print(f"HOffset={outline.HorizontalOffset}  VOffset={outline.VerticalOffset}  MaxW={outline.MaxWidth}")

ساخت درخت سند

یک Document را از ابتدا با استفاده از CompositeNode.AppendChildLast() بسازید. هر نوع گره می‌تواند به والد معتبر خود اضافه شود: Page → Document، Outline → Page، گره‌های RichText → Outline.

from aspose.note import Document, Page, Outline, RichText, ParagraphStyle, Title, SaveFormat

doc = Document()
page = Page()

title_text = RichText()
title_text.Append("My New Page", ParagraphStyle())
title = Title()
title.TitleText = title_text
page.Title = title

outline = Outline()
page.AppendChildLast(outline)
doc.AppendChildLast(page)
doc.Save("new_notebook.pdf", SaveFormat.Pdf)

صدور به PDF

Document.Save() SaveFormat.Pdf را می‌پذیرد تا یک PDF را به مسیر فایل یا یک بافر BytesIO بنویسد. خروجی به‌صورت کامل درون‌فرآیند اجرا می‌شود بدون نیاز به رندرکننده خارجی.

import io
from aspose.note import Document, SaveFormat

doc = Document("notebook.one")

# File output
doc.Save("export.pdf", SaveFormat.Pdf)

# In-memory buffer
buf = io.BytesIO()
doc.Save(buf, SaveFormat.Pdf)
print(f"PDF bytes: {len(buf.getvalue())}")

شروع سریع

pip install aspose-note-foss
from aspose.note import Document, Page, RichText, SaveFormat

doc = Document("notebook.one")

# Print all text
for page in doc.GetChildNodes(Page):
    for rt in page.GetChildNodes(RichText):
        print("".join(rt))

# Export to PDF
doc.Save("output.pdf", SaveFormat.Pdf)

فرمت‌های پشتیبانی‌شده

قالبپسوندخواندننوشتن
OneNote 2010.one✓—
OneNote 2007.one✓—
OneNote آنلاین.one✓—
PDF.pdf—✓

منبع باز و مجوزها

Aspose.Note FOSS برای Python تحت مجوز MIT منتشر شده است. از PyPI به عنوان aspose-note نصب کنید. استفاده تجاری، توزیع مجدد و تغییرات همه مجاز هستند.


شروع کار

منابع مرتبط