紹介
Aspose.Page FOSS for Python は、PostScript(PS)、Encapsulated PostScript(EPS)、および XPS ドキュメントを PDF およびラスタ画像に変換する、無料のオープンソースライブラリです。Python アプリケーションで使用できます。MIT ライセンスの下で配布され、PyPI で aspose-page-foss として入手可能です。
このライブラリは、PS および EPS ファイル用の PsDocument と、XPS ファイル用の XpsDocument という 2 つのトップレベルドキュメントクラスを提供します。両クラスは to_pdf() と to_image() メソッドを公開しており、バイト配列を返すため、一時ファイルを書き込むことなくファイル処理パイプラインに簡単に組み込むことができます。
このライブラリは Ghostscript、Adobe Reader、または任意のネイティブ Office ランタイムに依存しないため、Windows、Linux、macOS で動作し、CI ランナーや Docker コンテナでも利用可能です。高度なレンダリング機能を備えたフル商用 API が必要な開発者は、これらのオープンソースユーティリティと併用して、Python 用のエンタープライズ Aspose.Page を引き続き使用できます。
含まれるもの
PS と EPS の PDF 変換
PsDocument は、PostScript(.ps)と Encapsulated 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 オブジェクトを返します。アプリケーションが明示的に書き出さない限り、一時ファイルは不要です。PsDocument と XpsDocument の両方にある 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_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 for Python は PostScript (.ps)、カプセル化された PostScript (.eps)、および XML Paper Specification (.xps) ファイルを読み取ります。出力フォーマットは PDF (.pdf) とラスタ画像 (.png, .jpeg) です。すべての変換はエクスポートのみで、ライブラリは PS、EPS、または XPS を書き込むことはありません。
オープンソースとライセンス
Aspose.Page FOSS for Python は MIT ライセンスの下でリリースされています。ソースコードは GitHub にホストされており、github.com/aspose-page-foss/Aspose.Page-FOSS-for-Python にあります。商用利用は MIT の条件の下で制限なく許可されています。