مميزات نظرة عامة — 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,FileFormatPage:• الطفل المباشر منDocument;· المعرضاتTitle,Author,CreationTime,LastModifiedTime,LevelTitle: المعرضاتTitleText,TitleDate,TitleTime( كلها )RichTextالنود )Outline:- حاوية موقفية معHorizontalOffset,VerticalOffset,MaxWidth,MaxHeight,MinWidth,ReservedWidth,IndentPositionOutlineElement: ملح الورق ؛ المعرضات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 يحمل :
| الممتلكات | نوع | وصف |
|---|---|---|
Text | str | القسم النص |
Style | TextStyle | إعداد البيانات الميتا |
TextStyle الممتلكات :
| الممتلكات | نوع |
|---|---|
IsBold, IsItalic, IsUnderline, IsStrikethrough | bool |
IsSuperscript, IsSubscript | bool |
FontName | `str |
FontSize | `float |
FontColor, Highlight | `int |
Language | `int |
IsHyperlink | bool |
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 | `str | None` |
Bytes | bytes | بيانات الصورة الخام |
Width, Height | `float | None` |
AlternativeTextTitle | `str | None` |
AlternativeTextDescription | `str | None` |
HyperlinkUrl | `str | None` |
Tags | list[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 | `str | None` |
Bytes | bytes | بيانات الملف الخام |
Tags | list[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 أضف إلى النمط الكامل للطاولة:
| الفصول الدراسية | الممتلكات الرئيسية |
|---|---|
Table | Columns: 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 | `int | None` |
Label | `str | None` |
FontColor | `int | None` |
Highlight | `int | None` |
CreationTime | `datetime | None` |
CompletedTime | `datetime | None` |
طريقة المصنع : 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 | `str | None` |
Restart | `int | None` |
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
| الخيار | نوع | وصف |
|---|---|---|
PageIndex | int | مؤشر صفر القائم على الصفحة الأولى للتصدير (المعيار الافتراضي: 0، الصفحة الأول) |
PageCount | `int | None` |
ImageCompression | `Any | None` |
JpegQuality | `int | None` |
PageSettings | `Any | None` |
PageSplittingAlgorithm | `Any | None` |
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.OneNote2010 | OneNote 2010 تنسيق |
FileFormat.OneNoteOnline | OneNote على الانترنت |
FileFormat.OneNote2007 | OneNote 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. Runpip install "aspose-note[pdf]"قبل استخدامهاSaveFormat.Pdf.بدون تقرير، والتوفير إلى PDF يرفعImportErrorفي الوقت المناسب.