介绍

Aspose.Page FOSS 用于 Python 是一个免费、开源的库,用于将 PostScript(PS)、封装的 PostScript(EPS)以及 XPS 文档转换为 PDF 和栅格图像,以用于 Python 应用程序。它在 MIT 许可证下发布,并在 PyPI 上以 aspose-page-foss 的形式提供。

该库提供两个顶层文档类:用于 PS 和 EPS 文件的 PsDocument,以及用于 XPS 文件的 XpsDocument。两个类都公开 to_pdf()to_image() 方法,这些方法返回字节数组,使得在文件处理流水线中集成变得简便,无需写入临时文件。

由于该库不依赖 Ghostscript、Adobe Reader 或任何本地 Office 运行时,它可在 Windows、Linux 和 macOS 上运行,包括 CI 运行器和 Docker 容器。需要具备高级渲染功能的完整商业 API 的开发者仍可在使用这些开源工具的同时,继续使用面向 Python 的企业版 Aspose.Page 产品。


包含内容

PS 和 EPS 到 PDF 的转换

PsDocument 通过相同的类接口处理 PostScript(.ps)和封装的 PostScript(.eps)文件。调用 PsDocument.from_file() 加载文档,然后调用 to_pdf() 获取 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 文件,并公开与 PsDocument 相同的 to_pdf()to_image() 接口。调用 XpsDocument.from_file() 加载 XPS 文档,然后转换为所需的输出格式。

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 对象。除非应用程序显式写入临时文件,否则永远不需要临时文件。PsDocumentXpsDocument 上的 from_bytes() 构造函数都接受原始字节作为输入,从而整个流水线可以保持在内存中。

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_pdfps_to_imagexps_to_pdfxps_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 条款,允许无限制的商业使用。


开始使用

相关资源