PDF Export — 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 enum:
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}")بارگذاری از Stream، ذخیره به File
ترکیب بارگذاری مبتنی بر stream با خروجی 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] extra نصب نشده | pip install "aspose-note[pdf]" |
UnsupportedSaveFormatException | از SaveFormat غیر PDF استفاده شده است | استفاده کنید SaveFormat.Pdf فقط |
IncorrectPasswordException | فایل .one رمزگذاری شده | از فایلی بدون رمزگذاری استفاده کنید |
FileNotFoundError | مسیر .one ورودی اشتباه است | مسیر را با Path.exists() |
| خطای دسترسی در خروجی | دایرکتوری خروجی قابل نوشتن نیست | مجوزهای دایرکتوری خروجی را بررسی کنید |