تصدير 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
| خاصية | نوع | افتراضي | الوصف |
|---|---|---|---|
PageIndex | int | 0 | الحقل موجود ولكن لم يتم إرساله إلى مُصدّر PDF في v26.3.1 (ليس له أي تأثير) |
PageCount | `int | None` | 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() |
| خطأ في الأذونات على الإخراج | دليل الإخراج غير قابل للكتابة | تحقق من أذونات دليل الإخراج |