0

Docsplit の奇妙な問題を見つけようとしています。ユーザーがPPT/PDFをアップロードできるRails 2.3.14アプリケーションがあり、システムはDocsplitでカバー画像を抽出する必要があります。

次の行で、モデルへの after_save コールバックがあります。

Docsplit.extract_images(self.pdf.path, :size => '370x540', :density => '72', :format => :png, :pages => 1, :output => pdf_dir_path)

この行により、次のエラーが生成されます。

**** Page has no /MediaBox attribute. Using the current page size.
Error: /stackunderflow in --run--
Operand stack:
   --dict:8/8(L)--   612.0   792.0   3
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1846   1   3   %oparray_pop   1845   1   3   %oparray_pop   1829   1   3   %oparray_pop   --nostringval--   --nostringval--   2   1   1   --nostringval--   %for_pos_int_continue   --nostringval--   --nostringval--
Dictionary stack:
   --dict:1157/1684(ro)(G)--   --dict:1/20(G)--   --dict:76/200(L)--   --dict:76/200(L)--   --dict:106/127(ro)(G)--   --dict:285/300(ro)(G)--   --dict:21/25(L)--   --dict:2/6(L)--
Current allocation mode is local
GPL Ghostscript 8.70: Unrecoverable error, exit code 1
gm convert: Postscript delegate failed (/var/www/rails/application/releases/20130828151914/public/system/pdfs/6/original/news-scientifica.pdf).

これが Ghostscript に関連するバグであることはわかっていますが、コンソールからその正確なステートメントを手動で実行すると、すべて正常に動作します。それで、何ができますか?

4

1 に答える 1

0

終了コード 1 は、コマンドが完全に実行されていないことを意味します。0 を返す必要があります。私の推測では、コマンドを終了する前にシステムが応答を停止したと考えられます。プロセスが同期されていること、たとえばプロセス B がプロセス A の終了を待機していることを確認してください。運用を開始するため。

ただし、Ghostscript の使用経験から、バージョン 9.06 は最近のものよりも安定していると思います。パラメーター -dUseTrimBox を追加しても害はありません。

これは私が提案するものであり、それが役立つことを願っています。

于 2013-09-05T10:43:57.940 に答える