Docsplit可以从控制台运行,而不是从Rails本身运行

时间:2013-09-05 08:56:03

标签: ruby-on-rails ghostscript docsplit

我正试图找出Docsplit的一个奇怪问题。 我有一个Rails 2.3.14应用程序,用户可以上传PPT / PDF,系统应该用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相关的错误,但如果我从控制台手动执行那个确切的语句,一切正常。那么,可能是什么?

1 个答案:

答案 0 :(得分:0)

退出代码1表示命令未完全执行,必须返回0, 我的猜测是系统在完成命令之前已停止响应,确保进程已同步,并且进程B例如等待进程A完成以便开始运行。

但是根据我使用Ghostscript的经验,我认为版本9.06比最近的版本更稳定,同时添加参数-dUseTrimBox也不会造成伤害。

这是我建议希望它有所帮助。