تصدير PDF — Aspose.Note FOSS لـ Python

Aspose.Note FOSS for Python supports exporting loaded .one المستندات إلى PDF عبر Document.Save(). عرض PDF يتم توفيره بواسطة الاختياري ReportLab المكتبة. هذا هو تنسيق الحفظ الوحيد المُنفّذ حاليًا؛ الأخرى SaveFormat القيم تُثير UnsupportedSaveFormatException.


المتطلبات المسبقة

ثبّت المكتبة باستخدام [pdf] الإضافة الإضافية لجلب ReportLab:

pip install "aspose-note[pdf]"

التحقق:

python -c "from aspose.note import Document, SaveFormat; print('PDF export ready')"

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

تصدير جميع صفحات المستند إلى ملف PDF واحد:

from aspose.note import Document, SaveFormat

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

تظهر الصفحات في PDF بنفس الترتيب الذي تظهر به في DOM.


استخدام PdfSaveOptions

PdfSaveOptions يوفر تحكمًا دقيقًا في التصدير. مرره بدلاً من الـ SaveFormat التعداد:

from aspose.note import Document
from aspose.note.saving import PdfSaveOptions

opts = PdfSaveOptions()

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

ملاحظة حول PageIndex / PageCount: هذه الحقول موجودة على PdfSaveOptions لكن لا يتم تمريرها إلى مُصدّر PDF في v26.3.1 ولا تأثير لها. يتم دائمًا تصدير المستند بالكامل.


مرجع PdfSaveOptions

خاصيةنوعافتراضيالوصف
PageIndexint0الحقل موجود ولكن لم يتم إرساله إلى مُصدّر PDF في v26.3.1 (ليس له أي تأثير)
PageCount`intNone`None

تصدير دفعي

حوّل كل .one ملف في دليل إلى PDF:

from pathlib import Path
from aspose.note import Document, SaveFormat

input_dir = Path("./notes")
output_dir = Path("./pdfs")
output_dir.mkdir(parents=True, exist_ok=True)

for one_file in sorted(input_dir.glob("*.one")):
    try:
        doc = Document(str(one_file))
        out = output_dir / one_file.with_suffix(".pdf").name
        doc.Save(str(out), SaveFormat.Pdf)
        print(f"OK  {one_file.name} -> {out.name}")
    except Exception as exc:
        print(f"ERR {one_file.name}: {exc}")

التحميل من تدفق، الحفظ إلى ملف

دمج التحميل القائم على التدفق مع إخراج PDF القائم على الملفات:

from pathlib import Path
from aspose.note import Document, SaveFormat

one_bytes = Path("MyNotes.one").read_bytes()

import io
doc = Document(io.BytesIO(one_bytes))
doc.Save("output.pdf", SaveFormat.Pdf)

الحصول على بايتات PDF في الذاكرة

Document.Save() يقبل تدفقًا ثنائيًا مباشرةً: لا حاجة لملف مؤقت:

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

doc = Document("MyNotes.one")

buf = io.BytesIO()
doc.Save(buf, PdfSaveOptions())
pdf_bytes = buf.getvalue()
print(f"PDF size: {len(pdf_bytes)} bytes")

القيم المدعومة لـ SaveFormat

SaveFormatالحالة
SaveFormat.Pdfتم التنفيذ

الأخطاء الشائعة

خطأالسببإصلاح
ImportError: No module named 'reportlab'[pdf] الإضافية غير مثبتةpip install "aspose-note[pdf]"
UnsupportedSaveFormatExceptionتم استخدام تنسيق حفظ غير PDFاستخدم SaveFormat.Pdf فقط
IncorrectPasswordExceptionملف .one مشفراستخدم ملف غير مشفر
FileNotFoundErrorمسار .one المدخل غير صحيحتحقق من المسار باستخدام Path.exists()
خطأ في الأذونات على الإخراجدليل الإخراج غير قابل للكتابةتحقق من أذونات دليل الإخراج
 العربية