2012-02-08 8 views
0

私はそうのように、JPGにPostScriptファイルを変換するために、シェルからghostscriptのコマンドを実行しています:これは正常に動作しますが、時折不正なファイルは、それがハングアップする原因となります時間のGhostscriptのフェイルセーフ機構?

gs -dBATCH - dSAFER -dNOPAUSE -sDEVICE=jpeg -sOutputFile=out.jpg source.ps 

ほとんど。

私はGhostScriptには期待していないので、失敗しないようにするための組み込みのフェイルセーフ機構があるかどうか、あるいは少なくとももっと優雅なやり方で失敗するようにすることはできません。

おかげ

+0

私はpythonタグを取り出しました。ここにはPythonはありません。 –

+1

タグはpostscriptを表しますが、例はpdfを示しています:それは何ですか? –

+0

@luserdroog:申し訳ありません、それはタイプでした。一定。 – Goro

答えて

2

これらの不良ファイルについては、-dNOTRANSPARENCYまたは-DNOINTERPOLATIONのいずれかを試してみることをお勧めします。差異が生じた場合、透明度を無効にすると、出力が正しくない可能性があります。しかしは、バグが見つかったのか、遅いファイルなのかのヒントを与えます。透明度ブレンディングと画像補間の両方は、多くのCPU時間とメモリを簡単に消費する領域です。

これがバグかどうかを確認するために、一晩中実行しておいてもかまいません。

また、まだ行っていない場合は、最新のリリース(9.05)にアップグレードすること、いくつかの問題を修正したこと、そして過去数回のリリースでパフォーマンスをいくらか改善することが考えられます。 「サーバー -

は最後に、あなたが共有することができます例を持っている場合、Ghostscript Bugzilla

括弧に挟までの例でそれを報告し、伝統的な「サーバ」設定でポストスクリプトRIPを使用すると、一般的にポストスクリプト無限ループに依存していますループ "は通常Postscriptで実装されています。

Chris

1

のPostScriptは完全に一般的なプログラミング言語である)プロセスを殺すために。だから、他の完全なプログラミング言語のプログラムのようなPostScriptプログラムは、無限ループに陥るだけでなく、他のすべての通常の方法で間違ってしまうことがあります。 Halting Theoremは、一般に、特定のプログラムが(実際に実行されている以外の)それを自動分析してループに陥るかどうかを予測することは不可能であることを証明しています。

ハングしないように守る唯一の方法は、PostScriptプログラムの実行にある種の時間制限を課し、その時間を超えるとGhostscriptプロセスを強制終了させることです。

+0

しかしこの例はpdfを示しています。すべてのループがアンロールされました。 –

+0

なぜPostscriptについて質問していますか? –