1. 产品
  2.   Aspose.Page
  3.   Aspose.Page FOSS for Python

Aspose.Page FOSS 用于 Python

免费、MIT 许可证的 Python 库,用于将 PS、EPS 和 XPS 文档导出为 PDF 和光栅图像。无需 Office。

开源 Python 库,用于 PS、EPS 和 XPS 转换

Aspose.Page FOSS for Python 是一个免费、开源的库,用于转换 PostScript (PS), 在 Python 应用程序中使用 Encapsulated PostScript (EPS) 和 XPS 文档。使用 a 安装它。 单个 pip install aspose-page-foss 命令并开始将文档导出为 PDF 并 光栅图像,无需任何专有运行时或系统依赖。

该库提供了围绕 PsDocumentXpsDocument 构建的简洁 API。加载文档 使用 from_file()from_bytes(),然后调用 to_pdf() 以获取 PDF 字节流,或 to_image()ImageSaveOptions 实例一起使用,以在指定 DPI 下渲染为 PNG 或 JPEG。 可选的 MCP 服务器公开 ps_to_pdfps_to_imagexps_to_pdfxps_to_image 作为使用 FastMCP 的远程转换工具。

因为该库不依赖本机 Office 库或 Ghostscript,所以它可以运行。 在 Windows、Linux 和 macOS 上完全相同,包括 CI 运行器和 Docker 容器。该 代码库采用 MIT 许可证并托管在 GitHub 上。需要完整商业 API 的开发者 可以将 Aspose.Page 用于 Python,并结合这些开源资源。有关企业产品系列,请参见 Aspose.Page — Enterprise Product Family

转换 PS 和 EPS 文档

  • PS to PDF: 调用 PsDocument.from_file() 然后 to_pdf() 将文档导出为 PDF 字节数组。
  • EPS to PDF: PsDocument.from_file() 接受 .ps.eps 文件扩展名。
  • PS/EPS 到图像:ImageSaveOptions(format="png", dpi=150) 传递给 to_image() 以获取 PNG 或 JPEG 输出。
  • 内存处理: 所有转换返回 bytes — 无需临时文件。
  • From bytes: 使用 PsDocument.from_bytes() 来处理来自网络流或上传的 PS/EPS 数据。

PS/EPS 转换的使用位置

  • Document pipelines: 导出传统 PostScript 报告为 PDF,以便归档或分发。
  • 打印工作流: 将打印驱动程序的 PS 输出转换为 PDF 或图像预览。
  • EPS 资产处理: 将 EPS 插图光栅化为 PNG,以用于网页或文档使用。
  • 批量自动化: 在 CI 或 cron 作业中处理 PS/EPS 文件目录,无需 GUI。

转换 XPS 文档

  • XPS to PDF: 调用 XpsDocument.from_file() 然后 to_pdf() 将 XPS 文件导出为 PDF 字节数组。
  • XPS to image: 调用 to_image() 并使用 ImageSaveOptions 将 XPS 页面渲染为 PNG 或 JPEG。
  • From bytes: 使用 XpsDocument.from_bytes() 来处理来自上传或流的内存 XPS 数据。
  • 页面访问: 使用 add_page()get_page()remove_page() 来处理单个页面。
  • XPS 包读取: 使用 XpsPackage.from_file() 检查原始 XPS 包部件。

XPS 转换的使用位置

  • Windows 打印假脱机: 将 XPS spool 文件从 Windows 打印子系统导出为 PDF 或图像。
  • 文档归档: 将 XPS 文件转换为通用可读的 PDF,以实现长期存储。
  • 预览生成: 将 XPS 页面渲染为 PNG 缩略图,以供文档管理系统使用。
  • 跨平台使用: 在 Linux 和 macOS 服务器上处理 XPS 文件,当本地查看器不可用时。

用于远程转换的 MCP 服务器

  • 工具曝光: create_server()ps_to_pdfps_to_imagexps_to_pdfxps_to_image 注册为通过 FastMCP 的 MCP 工具。
  • EPS 元数据: eps_metadata 工具从 EPS 文件中提取边界框和 DSC 标头字段。
  • Input/output types: McpInput 接受文件路径或 base64 编码的字节; McpOutput 返回 base64 字节或写入路径。
  • Conversion options: McpConversionOptions 控制图像转换的输出格式和 DPI。
  • 可选依赖项: FastMCP 仅在 MCP 服务器托管时才需要;核心转换在没有它的情况下也能工作。

MCP 用例

  • AI agent pipelines: 将文档转换公开为可由 Claude 或其他兼容 MCP 的代理调用的工具。
  • Microservices: 运行轻量级转换服务,接受通过 HTTP 的 PS/EPS/XPS。
  • IDE plugins: 将转换功能提供给支持 MCP 工具服务器的编辑器。
  • 工作流自动化: 将转换集成到 n8n 或类似的低代码自动化平台中。

渲染模型和 PDF 输出

  • RenderModelBuilder: 构建一个 RenderDocument,使用 begin_page()add_path()add_text()add_image()end_page()
  • PdfWriter: 传入一个 PdfMetadata 实例并调用 write(doc),即可从任意 RenderDocument 生成 PDF 字节数组。
  • PdfMetadata: 在输出 PDF 上设置 titlecreatorproducercreation_datetrapped 字段。
  • RasterRenderer:RenderDocument 渲染为 RasterSurface;使用 encode_png()encode_bmp() 编码。
  • Unicode 编码: PDF 输出层会写入包含 CJK 和 Cyrillic 的多脚本 Unicode 文本。

低层渲染用例

  • 自定义 PDF 生成: 在不使用中间 PS/XPS 文件的情况下,使用矢量路径、文本和图像构建页面。
  • Pixel-perfect testing: 使用 RasterRenderer 渲染文档并在自动化测试中比较像素输出。
  • 字体嵌入: 使用 FontResolverbuild_embedded_font() 嵌入 TrueType 字体,以实现正确的渲染。
  • 颜色管理:Paint 对象与 DeviceRGB 或基于 CIE 的颜色空间应用于路径和文本。

将 PS 转换为 PDF

调用 PsDocument.from_file() 以访问 PostScript 文件,并调用 to_pdf() 将其导出为 PDF 字节流。

from pathlib import Path
from aspose.page.ps.document import PsDocument
ps = PsDocument.from_file("input.ps")
output_pdf = ps.to_pdf()
Path("output.pdf").write_bytes(output_pdf)

将 EPS 转换为 PNG

相同的 PsDocument 类处理 EPS 文件。将具有所需格式和 DPI 的 ImageSaveOptions 传递给 to_image()

from aspose.page.ps.document import PsDocument
from aspose.page.ps.output import ImageSaveOptions
eps = PsDocument.from_file("input.eps")
output_png = eps.to_image(ImageSaveOptions(format="png", dpi=150))
with open("output.png", "wb") as f:
    f.write(output_png)

将 XPS 转换为 PDF

调用 XpsDocument.from_file() 以访问 XPS 文档,并调用 to_pdf() 将其导出为 PDF 字节流。

from pathlib import Path
from aspose.page.xps.document import XpsDocument
xps = XpsDocument.from_file("input.xps")
output_pdf = xps.to_pdf()
Path("output.pdf").write_bytes(output_pdf)

常见问题

Aspose.Page FOSS for Python 使用什么许可证?

Aspose.Page FOSS for Python 在 MIT License 下发布,允许在商业和专有应用中使用。

是否有任何本机依赖?

不。该库不依赖 Ghostscript、Adobe Reader 或任何本地运行时。它可在 Windows、Linux 和 macOS 上运行。

该库支持哪些输入格式?

该库可以读取 PostScript (.ps)、Encapsulated PostScript (.eps) 和 XPS (.xps) 文件。

该库生成哪些输出格式?

该库通过 to_pdf() 导出为 PDF,并通过 to_image()ImageSaveOptions 下导出为 PNG 或 JPEG 栅格图像。

我可以在内存中处理文件而无需磁盘 I/O 吗?

是的。使用 from_bytes() 从原始字节加载,并直接使用 to_pdf()to_image() 返回的字节,而无需写入文件。

  

支持和学习资源

 中文