مميزات نظرة عامة — Aspose.Note FOSS for Python

Aspose.Note FOSS for Python (package aspose-note,الإصدار 26.3.2 يوفر API Python لقراءة Microsoft OneNote .one ملفات القسم وتصديرها إلى PDF. يتم التحقق من جميع الميزات المدرجة أدناه ضد رمز المصدر المخزون، README، ومخطوطات المثال.

التثبيت و الإعداد

تثبيت من PyPI:

pip install aspose-note

للحصول على دعم تصدير PDF (يتطلب ReportLab):

pip install aspose-note

متطلبات: Python 3.10 أو أعلى.لا يتطلب تثبيت Microsoft Office.


الخصائص والقدرات

.تحميل ملف واحد

تحميل ملفات قسم Microsoft OneNote من مسار الملف أو أي تدفق ثنائي (مشغل المجلد،, io.BytesIO, HTTP رد فعل الجسم, سحابة التخزين تدفق).

  • Document.FileFormat يوفر إشارة أفضل جهود إلى نسخة تنسيق ملف OneNote (OneNota2010، OneToo، أو OneLota2007)
  • تحميل القائمة على التيار يزيل I/O القرص لحركات العمل داخل الذاكرة أو الشبكة
  • LoadOptions.LoadHistory التحقق من ما إذا كانت تاريخ الصفحة مدرجة في DOM
from aspose.note import Document

##From a file path
doc = Document("notebook.one")

##From a binary stream
with open("notebook.one", "rb") as f:
    doc = Document(f)

الوثيقة DOM Traversal

يتم عرض مستند OneNote الكامل كشجرة من الأشياء Python المكتوبة. Node أو CompositeNode:

  • Document: الجذور ؛ التعرضات DisplayName, CreationTime, FileFormat
  • Page:• الطفل المباشر من Document;· المعرضات Title, Author, CreationTime, LastModifiedTime, Level
  • Title: المعرضات TitleText, TitleDate, TitleTime ( كلها ) RichText النود )
  • Outline:- حاوية موقفية مع HorizontalOffset, VerticalOffset, MaxWidth, MaxHeight, MinWidth, ReservedWidth, IndentPosition
  • OutlineElement: ملح الورق ؛ المعرضات NumberList

أساليب الملاحة على CompositeNode:

الطريقة / الممتلكاتوصف
FirstChild, LastChildالوصول المباشر للأطفال
GetChildNodes(Type)البحث المختصر، نوعية مرشحة
AppendChildLast(node)إعطاء الطفل في النهاية
AppendChildFirst(node)إعطاء الطفل في البداية
InsertChild(index, node)إدخال في موقف
RemoveChild(node)إزالة طفل
for child in nodeإرسال رسالة خاصة إلى الأطفال المباشرين
from aspose.note import Document, Page, Outline, OutlineElement, RichText

doc = Document("notebook.one")
for page in doc.GetChildNodes(Page):
    title_text = page.Title.TitleText.Text if page.Title and page.Title.TitleText else ""
    print(f"Page: {title_text}")
    for outline in page.GetChildNodes(Outline):
        for oe in outline.GetChildNodes(OutlineElement):
            for rt in oe.GetChildNodes(RichText):
                print(f"  {rt.Text}")

استخراج محتوى النص الغني

RichText أضف تعليقًا:

  • Text: str: كاملة سلك النص المباشر
  • TextRuns: list[TextRun]:قائمة بالقطاعات المنسدلة
  • Tags: list[NoteTag]: OneNote العلامات المرفقة بهذه الكتلة
  • Append(text, style=None): إضافة نص يعمل في ذاكرة
  • Replace(old_value, new_value): استبدال حبل الذاكرة في

كل واحد منهم TextRun يحمل :

الممتلكاتنوعوصف
Textstrالقسم النص
StyleTextStyleإعداد البيانات الميتا

TextStyle الممتلكات :

الممتلكاتنوع
IsBold, IsItalic, IsUnderline, IsStrikethroughbool
IsSuperscript, IsSubscriptbool
FontName`str
FontSize`float
FontColor, Highlight`int
Language`int
IsHyperlinkbool
HyperlinkAddress`str
from aspose.note import Document, RichText

doc = Document("notebook.one")
for rt in doc.GetChildNodes(RichText):
    for run in rt.TextRuns:
        if run.Style.IsHyperlink:
            print(f"Hyperlink: {run.Text} -> {run.Style.HyperlinkAddress}")
        if run.Style.IsBold:
            print(f"Bold text: {run.Text}")

صورة استخراج

Image العقد يعرض بايتات خام ومتاداوات لكل صورة مدمجة:

الممتلكاتنوعوصف
FileName`strNone`
Bytesbytesبيانات الصورة الخام
Width, Height`floatNone`
AlternativeTextTitle`strNone`
AlternativeTextDescription`strNone`
HyperlinkUrl`strNone`
Tagslist[NoteTag]إرفاق OneNote Tags
from aspose.note import Document, Image

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

استخراج الملفات المرفقة

AttachedFile العقد يظهر ملفات المرفقات المدمجة:

الممتلكاتنوعوصف
FileName`strNone`
Bytesbytesبيانات الملف الخام
Tagslist[NoteTag]إرفاق OneNote Tags
from aspose.note import Document, AttachedFile

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

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

Table, TableRow,و ، و TableCell أضف إلى النمط الكامل للطاولة:

الفصول الدراسيةالممتلكات الرئيسية
TableColumns: list[TableColumn] (أيها الإخوة) TableColumn لديها .Width و .LockedWidth), IsBordersVisible: bool, Tags: list[NoteTag]
TableRowالخلايا عبر GetChildNodes(TableCell)
TableCellحاوية RichText, Image,- وغيرها من أشرطة المحتوى
from aspose.note import Document, Table, TableRow, TableCell, RichText

doc = Document("notebook.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)
        values = [
            " ".join(rt.Text for rt in cell.GetChildNodes(RichText)).strip()
            for cell in cells
        ]
        print(f"Row {r}:", values)

OneNote Tag التحقق

NoteTag يظهر على RichText, Image, AttachedFile,و ، و Table النواة من خلالها .Tags الممتلكات . OutlineElement لا يوجد لديك A .Tags الممتلكات . NoteTag الممتلكات :

الممتلكاتنوعوصف
Icon`intNone`
Label`strNone`
FontColor`intNone`
Highlight`intNone`
CreationTime`datetimeNone`
CompletedTime`datetimeNone`

طريقة المصنع : NoteTag.CreateYellowStar() يخلق عقدة علامة صفراء ستار قياسية.

from aspose.note import Document, RichText

doc = Document("notebook.one")
for rt in doc.GetChildNodes(RichText):
    for tag in rt.Tags:
        print(f"Tag: {tag.Label} (icon={tag.Icon}, completed={tag.CompletedTime})")

قائمة الدعم رقمية

OutlineElement.NumberList عرض :

الممتلكاتنوعوصف
Format`strNone`
Restart`intNone`
from aspose.note import Document, OutlineElement

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

الوثائقالسفر

DocumentVisitor يقدم نموذج زائر لمرحلة مستندات كاملة مركبة. VisitXxxStart / VisitXxxEnd طريقة لقطع أنواع النقاط المحددة:

  • VisitDocumentStart(doc) / VisitDocumentEnd(doc)
  • VisitPageStart(page) / VisitPageEnd(page)
  • VisitTitleStart(title) / VisitTitleEnd(title)
  • VisitOutlineStart(outline) / VisitOutlineEnd(outline)
  • VisitOutlineElementStart(oe) / VisitOutlineElementEnd(oe)
  • VisitRichTextStart(rt) / VisitRichTextEnd(rt)
  • VisitImageStart(img) / VisitImageEnd(img)
from aspose.note import Document, DocumentVisitor, Page, RichText, Image

class MySummaryVisitor(DocumentVisitor):
    def __init__(self):
        self.pages, self.texts, self.images = 0, 0, 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("notebook.one")
v = MySummaryVisitor()
doc.Accept(v)
print(f"Pages={v.pages}  RichText={v.texts}  Images={v.images}")

PDF تصدير

حفظ مستند محمول إلى PDF باستخدام Document.Save().يتم دعمها من خلال الخيارية ReportLab backend.

from aspose.note import Document, SaveFormat

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

PdfSaveOptions

الخيارنوعوصف
PageIndexintمؤشر صفر القائم على الصفحة الأولى للتصدير (المعيار الافتراضي: 0، الصفحة الأول)
PageCount`intNone`
ImageCompression`AnyNone`
JpegQuality`intNone`
PageSettings`AnyNone`
PageSplittingAlgorithm`AnyNone`
import io
from aspose.note import Document, SaveFormat
from aspose.note.saving import PdfSaveOptions

doc = Document("notebook.one")

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

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

إعداد و Enum Reference

SaveFormat

القيمةحالة
SaveFormat.Pdfإعداد (يتطلب تقرير)

FileFormat

Document.FileFormat يوفر إشارة أفضل جهود إلى نسخة تنسيق ملف OneNote. يعلن enum ثلاثة قيم:

القيمةوصف
FileFormat.OneNote2010OneNote 2010 تنسيق
FileFormat.OneNoteOnlineOneNote على الانترنت
FileFormat.OneNote2007OneNote 2007 تنسيق

NodeType

NodeType.Document, NodeType.Page, NodeType.Outline, NodeType.OutlineElement, NodeType.RichText, NodeType.Image, NodeType.Table, NodeType.AttachedFile

HorizontalAlignment

HorizontalAlignment.Left, HorizontalAlignment.Center, HorizontalAlignment.Right


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

الحد الأدنىالتفاصيل
قراءة فقطالكتابة مرة أخرى إلى .one لا يتم تنفيذ النموذج
لا تشفيروثائق مشفرة ترتفع IncorrectPasswordException
PDF فقط للتصديرغيرها SaveFormat قيمة الارتفاع UnsupportedSaveFormatException
تقريرالبرنامج المطلوب لـ PDFتثبيت pip install "aspose-note[pdf]" منفصلة
GetPageHistory إعادة قائمة العناصر الفرديةصفحة كاملة تاريخ عبرة هو سقف؛ العودة [page]
DetectLayoutChanges()التوافق المقاوم؛ لا عمل

نصائح وأفضل الممارسات

  • تحقق من لا أحد: Page.Title, Title.TitleText, OutlineElement.NumberList,ومعظم الحقول الميتاجدات يمكن أن تكون None.دائما الحراسة مع if x is not None أو if x قبل الوصول إلى الممتلكات.
  • استخدام GetChildNodes(Type) للبحث المتكرر بدلاً من إيتير الشجرة يدوياً، ويبحث عن شجرة تحت الأرض بأكملها.
  • إرسال رسالة خاصة إلى الأطفال المباشرين مع for child in node عندما تحتاج فقط إلى أطفال فوريين.
  • التعامل مع التشفير على Windows:على ويندوز،, sys.stdout يمكن استخدام صفحة رمز التراث.إضافة sys.stdout.reconfigure(encoding="utf-8", errors="replace") في بداية الطباعة النص Unicode.
  • تثبيت [pdf] إضافية: PDF export requires ReportLab. Run pip install "aspose-note[pdf]" قبل استخدامها SaveFormat.Pdf.بدون تقرير، والتوفير إلى PDF يرفع ImportError في الوقت المناسب.
 العربية