2013-09-05 1 views
0

Я пытаюсь выяснить странную проблему с Docsplit. У меня есть приложение Rails 2.3.14, где пользователи могут загружать PPT/PDF, а система должна извлекать обложки с помощью Docsplit.Docsplit работает с консоли, а не с самого Rails

У меня есть 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, но если я выполняю это точный оператор вручную с консоли, все работает нормально. Итак, что может быть?

ответ

0

Код выхода 1 означает, что команда не выполнена полностью, она должна возвращать 0, . Я предполагаю, что система перестала отвечать перед завершением команды, убедитесь, что процесс синхронизирован и что процесс B, например, ждет для завершения процесса A, чтобы начать работу.

Однако, имея опыт использования Ghostscript, я думаю, что версия 9.06 более стабильна, чем предыдущие, и добавление параметра -dUseTrimBox не принесет вреда.

это то, что я предлагаю надеяться, что это поможет.

+0

У меня нет параллельных процессов, пытающихся выполнить эту команду. Я попытался сначала использовать Docsplit из Rails (через веб-панель) и после консоли. Консоль всегда работает, а сеть - нет. К сожалению, на данный момент я не могу обновить Ghostscript (я знаю, что было бы лучше). Я не понимаю, почему это происходит. спасибо –