PS と EPS の変換
PS と EPS の変換
PsDocument は、PostScript(.ps)およびカプセル化された PostScript(.eps)ファイルを読み込むエントリーポイントです。両方のフォーマットは同じクラスで同じインターフェースを介して処理されます。
PS または EPS ファイルの読み込み
ファイルパスからドキュメントを読み込むには、PsDocument.from_file() を使用します。is_eps プロパティは、読み込まれたファイルが EPS ファイルかどうかを示します。
from aspose.page.ps.document import PsDocument
ps = PsDocument.from_file("document.ps")
eps = PsDocument.from_file("illustration.eps")
print("Is EPS:", eps.is_eps)生のバイト列(例: アップロードやネットワークストリーム)から読み込むには、from_bytes() を使用します:
from aspose.page.ps.document import PsDocument
with open("document.ps", "rb") as f:
data = f.read()
doc = PsDocument.from_bytes(data)PDF へのエクスポート
読み込まれた PsDocument に対して to_pdf() を呼び出すと、PDF バイト配列が取得できます。その結果をディスクに書き込むか、HTTP ハンドラから直接返します。
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)PNGまたはJPEGへのエクスポート
ImageSaveOptions のインスタンスを to_image() に渡します。format を "png" または "jpeg" に設定し、dpi を目的の解像度に設定します。
from pathlib import Path
from aspose.page.ps.document import PsDocument
from aspose.page.ps.output import ImageSaveOptions
eps = PsDocument.from_file("illustration.eps")
opts = ImageSaveOptions(format="png", dpi=150)
Path("output.png").write_bytes(eps.to_image(opts))EPS DSC メタデータの読み取り
PsDocument.dsc は、EPS ファイルに DSC ヘッダーコメントが存在する場合に DscMetadata のインスタンスを返します。変換前にバウンディングボックス、タイトル、作成者フィールドを読み取るために使用してください。
from aspose.page.ps.document import PsDocument
eps = PsDocument.from_file("illustration.eps")
dsc = eps.dsc
if dsc is not None:
print("Title:", dsc.title)
print("Bounding box:", dsc.bounding_box)
print("Creator:", dsc.creator)ヒントとベストプラクティス
- 一時ファイルの書き込みを回避するため、アップロードの処理時に
from_bytes()を使用してください。 - PS と EPS の混在バッチを処理する際にロジックを分岐させるため、
is_epsを確認してください。 - ドキュメントプレビューシステムで使用されるラスタ出力のために、
dpi=150以上に設定してください。 - すべての変換メソッドは
bytesを返します — 必要に応じてディスク I/O を行わずに保存またはストリームしてください。
よくある問題
| 問題 | 原因 | 修正 |
|---|---|---|
FileNotFoundError | from_file() に渡されたパスが存在しません | from_file() を呼び出す前にファイルパスを確認してください |
| PDF 出力が空です | PS ファイルにレンダリング可能なコンテンツが含まれていません | PS ソースで欠落している showpage 演算子を検査する |
| 低解像度ラスタ | デフォルト DPI は 96 です | ImageSaveOptions(dpi=150) 以上を指定する |
FAQ
EPS ファイルを PDF に変換できますか?
はい。PsDocument.from_file() は .ps と .eps の両方の拡張子を受け付けます。返されたドキュメントで to_pdf() を呼び出すと PDF バイトを取得できます。
変換には Ghostscript が必要ですか?
いいえ。このライブラリは Ghostscript やネイティブランタイムへの依存はありません。
PS ファイルを書き込まずに処理できますか?
はい。from_bytes() を使用して bytes オブジェクトからロードし、to_pdf() または to_image() から返された bytes を直接使用します — ファイルを書き込む必要はありません。
API Reference の概要
| クラス / メソッド | 説明 |
|---|---|
PsDocument.from_file(path) | ファイルパスから PS または EPS をロードする |
PsDocument.from_bytes(data) | 生バイト列から PS または EPS をロード |
PsDocument.to_pdf(options) | PDF バイト列にエクスポート |
PsDocument.to_image(options) | ラスタ画像のバイト列にエクスポート |
PsDocument.is_eps | ロードされたファイルが EPS の場合は true |
PsDocument.dsc | DSC ヘッダー メタデータ (EPS ファイル) |
DscMetadata.bounding_box | EPS のバウンディングボックス (x0, y0, x1, y1) |
DscMetadata.title | EPS DSC ヘッダーのタイトル |
ImageSaveOptions.format | 出力形式: “png” または “jpeg” |
ImageSaveOptions.dpi | 出力解像度(DPI) |