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 を行わずに保存またはストリームしてください。

よくある問題

問題原因修正
FileNotFoundErrorfrom_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.dscDSC ヘッダー メタデータ (EPS ファイル)
DscMetadata.bounding_boxEPS のバウンディングボックス (x0, y0, x1, y1)
DscMetadata.titleEPS DSC ヘッダーのタイトル
ImageSaveOptions.format出力形式: “png” または “jpeg”
ImageSaveOptions.dpi出力解像度(DPI)

参照

 日本語