دليل المطور

Aspose.Note FOSS for Python is a free, open-source library for reading Microsoft OneNote .one ملفات القسم دون أي إدمان على Microsoft Office. يوفر API عام نظيف تحت aspose.note حزمة، نمذجة بعد Aspose.Note لواجهة .NET. مكتبة مناسبة لأتمتة المستندات، ومحتوى فهرسة، وأنابيب استخراج البيانات، وتدفقات العمل الأرشيف.

يغطي هذا الدليل المطور مساحة API العامة الكاملة المتاحة في الإصدار 26.3.1 ، مع أمثلة رمزية قابلة للتحرك لكل ميزة رئيسية.

تحميل الوثيقة

تحميل A .one الملفات من مسار ملف أو تدفق ثنائي. Document فئة هي نقطة الدخول لجميع العمليات.

تحميل من مسار الملفات

from aspose.note import Document

doc = Document("MyNotes.one")

تحميل من سلك ثنائي

مفيد عند القراءة من التخزين السحابي، استجابة HTTP، أو في الذاكرة:

from pathlib import Path
from aspose.note import Document

with Path("MyNotes.one").open("rb") as f:
    doc = Document(f)

خيارات الشحن

استخدام LoadOptions لتحديد المعلمات الاختيارية في وقت الشحن:

from aspose.note import Document, LoadOptions

opts = LoadOptions()
opts.LoadHistory = True   # Include page history in the DOM
doc = Document("MyNotes.one", opts)

ملاحظة: DocumentPassword موجودة على LoadOptions متوافقة مع API، ولكن المستندات المشفرة لا تدعم. محاولة تحميل ملف مشفر يرفع IncorrectPasswordException.


الهيكل الوثائقي (DOM)

نموذج وثيقة OneNote هو شجرة:

Document
  └── Page (0..n)
        ├── Title
        │     ├── TitleText (RichText)
        │     ├── TitleDate (RichText)
        │     └── TitleTime (RichText)
        └── Outline (0..n)
              └── OutlineElement (0..n)
                    ├── RichText
                    ├── Image
                    ├── Table
                    │     └── TableRow
                    │           └── TableCell
                    │                 └── RichText / Image
                    └── AttachedFile

كل عينات عرض ParentNode و أ Document الممتلكات التي تسير إلى الجذر.المكونات العقدية تدعم إيتراation الطفل،, FirstChild, LastChild, AppendChildLast, InsertChild, RemoveChild,و ، و GetChildNodes(Type).


صفحة إيتراين

الابن هو الطفل المباشر للطفل Document.- إزالتها مباشرة أو استخدامها. GetChildNodes:

from aspose.note import Document, Page

doc = Document("MyNotes.one")

for page in doc:
    title = page.Title.TitleText.Text if page.Title and page.Title.TitleText else "(untitled)"
    author = page.Author or "(unknown)"
    print(f"  {title}  [by {author}]")

صفحة الميتا:

الممتلكاتنوعوصف
Title`TitleNone`
Author`strNone`
CreationTime`datetimeNone`
LastModifiedTime`datetimeNone`
Level`intNone`

نص استخراج

إخراج النص الكامل

from aspose.note import Document, RichText

doc = Document("MyNotes.one")
all_text = [rt.Text for rt in doc.GetChildNodes(RichText) if rt.Text]
print("\n".join(all_text))

فحص تشكيل الجولات

كل واحد منهم RichText يحتوي على قائمة من TextRun كل ركوب يحمل نفسه TextStyle:

from aspose.note import Document, RichText

doc = Document("FormattedNotes.one")
for rt in doc.GetChildNodes(RichText):
    for run in rt.TextRuns:
        style = run.Style
        flags = []
        if style.IsBold: flags.append("bold")
        if style.IsItalic: flags.append("italic")
        if style.IsHyperlink: flags.append(f"link={style.HyperlinkAddress}")
        print(f"{run.Text!r:40s} [{', '.join(flags)}]")

استخراج hyperlinks

from aspose.note import Document, RichText

doc = Document("MyNotes.one")
for rt in doc.GetChildNodes(RichText):
    for run in rt.TextRuns:
        if run.Style.IsHyperlink and run.Style.HyperlinkAddress:
            print(run.Text, "->", run.Style.HyperlinkAddress)

صورة استخراج

from aspose.note import Document, Image

doc = Document("MyNotes.one")
for i, img in enumerate(doc.GetChildNodes(Image), start=1):
    name = img.FileName or f"image_{i}.bin"
    with open(name, "wb") as f:
        f.write(img.Bytes)
    print(f"Saved {name}  ({img.Width}x{img.Height})")

صور الخصائص : FileName, Bytes, Width, Height, AlternativeTextTitle, AlternativeTextDescription, HyperlinkUrl, Tags.


طاولة البارسين

from aspose.note import Document, Table, TableRow, TableCell, RichText

doc = Document("MyNotes.one")
for table in doc.GetChildNodes(Table):
    print("Column widths:", [col.Width for col in table.Columns])
    for r, row in enumerate(table.GetChildNodes(TableRow), start=1):
        cells = row.GetChildNodes(TableCell)
        row_text = [
            " ".join(rt.Text for rt in cell.GetChildNodes(RichText)).strip()
            for cell in cells
        ]
        print(f"Row {r}:", row_text)

ملفات متصلة

from aspose.note import Document, AttachedFile

doc = Document("NotesWithAttachments.one")
for i, af in enumerate(doc.GetChildNodes(AttachedFile), start=1):
    name = af.FileName or f"attachment_{i}.bin"
    with open(name, "wb") as f:
        f.write(af.Bytes)
    print(f"Saved: {name}")

Tags و قائمة رقمية

تحقق من الملاحظات

from aspose.note import Document, RichText, Image, Table

doc = Document("TaggedNotes.one")
for rt in doc.GetChildNodes(RichText):
    for tag in rt.Tags:
        print(f"RichText tag: {tag.Label} icon={tag.Icon}")
for img in doc.GetChildNodes(Image):
    for tag in img.Tags:
        print(f"Image tag: {tag.Label}")

فحص القوائم المعدلة

from aspose.note import Document, OutlineElement

doc = Document("NumberedNotes.one")
for oe in doc.GetChildNodes(OutlineElement):
    nl = oe.NumberList
    if nl:
        print(f"format={nl.Format!r}")

نموذج الزيارة

استخدام DocumentVisitor لتنفيذ زائر يمشي على شجرة الوثيقة بأكملها:

from aspose.note import Document, DocumentVisitor, Page, RichText, Image

class ContentCounter(DocumentVisitor):
    def __init__(self):
        self.pages = 0
        self.texts = 0
        self.images = 0

    def VisitPageStart(self, page: Page) -> None:
        self.pages += 1

    def VisitRichTextStart(self, rt: RichText) -> None:
        self.texts += 1

    def VisitImageStart(self, img: Image) -> None:
        self.images += 1

doc = Document("MyNotes.one")
counter = ContentCounter()
doc.Accept(counter)
print(f"Pages: {counter.pages}, Texts: {counter.texts}, Images: {counter.images}")

PDF تصدير

يتطلب تصدير PDF إمكانية الاعتماد على ReportLab الاختياري.ثم قم بتثبيته باستخدام:

pip install aspose-note

PDF الأساسي الصادرات

from aspose.note import Document, SaveFormat

doc = Document("MyNotes.one")
doc.Save("output.pdf", SaveFormat.Pdf)

PDF مع الخيارات

import io
from aspose.note import Document, SaveFormat
from aspose.note.saving import PdfSaveOptions

doc = Document("MyNotes.one")

##With save options
opts = PdfSaveOptions()
doc.Save("output.pdf", opts)

##Save to in-memory stream
buf = io.BytesIO()
doc.Save(buf, PdfSaveOptions())
pdf_bytes = buf.getvalue()

ملاحظة: PdfSaveOptions.PageIndex و PageCount الحقول موجودة ولكن لا يتم إرسالها إلى مستورد PDF في v26.3.1.


الحد الأدنى للحدود الحالية

المنطقةحالة
قراءة .one ملفاتدعم كامل
PDF (من خلال تقرير)دعم
الكتابة مرة أخرى إلى .oneغير تنفيذية
وثائق مشفرةغير مدعوم (الصعود) IncorrectPasswordException)
HTML / صورة / One حفظ تنسيقاتإعلان متوافق مع API؛ رفع UnsupportedSaveFormatException

دليل متاح


انظر أيضا

 العربية