مقدمه

Aspose.Page FOSS برای Python یک کتابخانهٔ رایگان و متن‌باز برای تبدیل PostScript (PS)، Encapsulated PostScript (EPS) و اسناد XPS به PDF و تصاویر رستر در برنامه‌های Python است. این کتابخانه تحت مجوز MIT توزیع شده و به عنوان aspose-page-foss در PyPI موجود است.

این کتابخانه دو کلاس سند سطح-بالا ارائه می‌دهد: PsDocument برای فایل‌های PS و EPS، و XpsDocument برای فایل‌های XPS. هر دو کلاس متدهای to_pdf() و to_image() را فراهم می‌کنند که آرایه‌های بایتی را برمی‌گردانند، و ادغام آن‌ها در خطوط پردازش فایل بدون نیاز به نوشتن فایل‌های موقت را ساده می‌کند.

از آنجا که این کتابخانه هیچ وابستگی‌ای به Ghostscript، Adobe Reader یا هر زمان‌اجرای بومی Office ندارد، بر روی Windows، Linux و macOS از جمله رانرهای CI و کانتینرهای Docker اجرا می‌شود. توسعه‌دهندگانی که به نسخهٔ تجاری کامل API با ویژگی‌های پیشرفته رندرینگ نیاز دارند، می‌توانند به استفاده از محصول سازمانی Aspose.Page برای Python در کنار این ابزارهای متن‌باز ادامه دهند.


موارد موجود

تبدیل PS و EPS به PDF

PsDocument هر دو فایل PostScript (.ps) و Encapsulated PostScript (.eps) را از طریق همان رابط کلاس مدیریت می‌کند. برای بارگذاری یک سند، PsDocument.from_file() را فراخوانی کنید، سپس برای دریافت نتیجه به صورت آرایه بایتی PDF، to_pdf() را صدا بزنید.

from pathlib import Path
from aspose.page.ps.document import PsDocument

ps = PsDocument.from_file("input.ps")
pdf_bytes = ps.to_pdf()
Path("output.pdf").write_bytes(pdf_bytes)

متد کلاس from_bytes() بایت‌های خام را می‌پذیرد، بنابراین اسنادی که از جریان‌های شبکه یا بارگذاری فایل می‌آیند می‌توانند بدون نوشتن بر روی دیسک ابتدا پردازش شوند.

PS و EPS به تصویر رستر

برای تبدیل یک سند PS یا EPS به تصویر PNG یا JPEG، یک نمونه ImageSaveOptions را به to_image() پاس بدهید. ویژگی format را روی "png" یا "jpeg" تنظیم کنید و ویژگی dpi را برای کنترل وضوح خروجی تنظیم کنید.

from aspose.page.ps.document import PsDocument
from aspose.page.ps.output import ImageSaveOptions

eps = PsDocument.from_file("input.eps")
opts = ImageSaveOptions(format="png", dpi=150)
png_bytes = eps.to_image(opts)

XPS به PDF و تصویر

XpsDocument فایل‌های XPS را بارگذاری می‌کند و همان رابط to_pdf() و to_image() را مانند PsDocument فراهم می‌آورد. برای بارگذاری یک سند XPS، XpsDocument.from_file() را فراخوانی کنید، سپس به قالب خروجی موردنظر تبدیل کنید.

from pathlib import Path
from aspose.page.xps.document import XpsDocument
from aspose.page.ps.output import ImageSaveOptions

xps = XpsDocument.from_file("input.xps")
pdf_bytes = xps.to_pdf()
Path("output.pdf").write_bytes(pdf_bytes)

png_bytes = xps.to_image(ImageSaveOptions(format="png", dpi=96))

پردازش در حافظه

همه متدهای تبدیل، اشیاء bytes را برمی‌گردانند. فایل‌های موقت هرگز لازم نیستند مگر این که برنامه به‌طور صریح آن‌ها را بنویسد. سازنده‌های from_bytes() در هر دو PsDocument و XpsDocument بایت‌های خام را به‌عنوان ورودی می‌پذیرند، بنابراین کل خط لوله می‌تواند در حافظه باقی بماند.

from aspose.page.ps.document import PsDocument

def convert_ps_in_memory(ps_bytes: bytes) -> bytes:
    doc = PsDocument.from_bytes(ps_bytes)
    return doc.to_pdf()

یکپارچه‌سازی سرور MCP

کتابخانه شامل یک سرور MCP اختیاری است که توابع تبدیل را به عنوان ابزارهای راه دور با استفاده از FastMCP در دسترس می‌گذارد. سرور ps_to_pdf، ps_to_image، xps_to_pdf و xps_to_image را به عنوان ابزارهای قابل فراخوانی ثبت می‌کند. McpInput مسیر فایل یا بایت‌های کدگذاری‌شده base64 را می‌پذیرد؛ McpOutput بایت‌های base64 را برمی‌گرداند یا به مسیر می‌نویسد.

FastMCP یک وابستگی اختیاری است — عملکرد اصلی تبدیل بدون آن کار می‌کند. سرور MCP برای قابل فراخوانی کردن کتابخانه از طریق خطوط لوله عامل AI، میکروسرویس‌ها و ویرایشگرهایی که سرورهای ابزار MCP را پشتیبانی می‌کنند، مفید است.


شروع سریع

کتابخانه را با pip نصب کنید:

git clone https://github.com/aspose-page-foss/Aspose.Page-FOSS-for-Python.git
cd Aspose.Page-FOSS-for-Python
pip install -e .

مثال زیر رایج‌ترین حالت استفاده را پوشش می‌دهد — تبدیل یک فایل PS به PDF و ذخیره آن روی دیسک:

from pathlib import Path
from aspose.page.ps.document import PsDocument
from aspose.page.ps.output import ImageSaveOptions

# Convert PS to PDF
ps = PsDocument.from_file("document.ps")
Path("document.pdf").write_bytes(ps.to_pdf())

# Convert EPS to PNG at 150 DPI
eps = PsDocument.from_file("illustration.eps")
opts = ImageSaveOptions(format="png", dpi=150)
Path("illustration.png").write_bytes(eps.to_image(opts))

# Convert XPS to PDF
from aspose.page.xps.document import XpsDocument
xps = XpsDocument.from_file("document.xps")
Path("document.pdf").write_bytes(xps.to_pdf())

قالب‌های پشتیبانی‌شده

Aspose.Page FOSS برای Python فایل‌های PostScript (.ps)، PostScript محصور شده (.eps) و مشخصات کاغذ XML (.xps) را می‌خواند. قالب‌های خروجی PDF (.pdf) و تصاویر رستر (.png، .jpeg) هستند. تمام تبدیل‌ها فقط به صورت خروجی هستند — کتابخانه PS، EPS یا XPS را نمی‌نویسد.


منبع باز و مجوزها

Aspose.Page FOSS برای Python تحت مجوز MIT منتشر شده است. کد منبع در GitHub میزبانی می‌شود در github.com/aspose-page-foss/Aspose.Page-FOSS-for-Python. استفاده تجاری بدون محدودیت تحت شرایط MIT مجاز است.


شروع به کار

منابع مرتبط