wicked_pdf на производственном сервере - PullRequest
4 голосов
/ 12 марта 2012

Локально Это работает как по волшебству, но когда я пытаюсь сгенерировать PDF на сервере, оно выдает:

RuntimeError (Failed to execute:
"/path/to/my/project/vendor/bundle/ruby/1.9.1/bin/wkhtmltopdf"       -q - - 
Error: Broken pipe):

Вот что на my_controller .

format.pdf do
    pdf = render_to_string(
            :pdf => "invoice",
            :template => "my_controller/my_view.pdf.erb",
            :layout=>"pdf.html.erb"
        )
    save_path = Rails.root.join('pdfs','invoice.pdf')
    File.open(save_path, 'wb') do |file|
        file << pdf
    end
    send_file(save_path)
end

И в моем Gemfile

gem 'wicked_pdf'
gem 'wkhtmltopdf-binary'

Ответы [ 2 ]

17 голосов
/ 13 марта 2012

Исправлено удаление установленной системы wkhtmltopdf и использование бинарного файла wkhtmltopdf:

  1. Удалите пакет wkhtmltopdf: apt-get remove wkhtmltopdf --purge
  2. (в usr / local / bin) sudo curl -C - -O http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.9.9-static-amd64.tar.bz2
  3. (в usr / local / bin) sudo tar -xvjf wkhtmltopdf-0.9.9-static-amd64.tar.bz2
  4. (в usr / local / bin) ln -s wkhtmltopdf-amd64 wkhtmltopdf
  5. В вашем инициализаторе WickedPdf.config = { :exe_path => "/usr/local/bin/wkhtmltopdf" }
0 голосов
/ 15 мая 2013

Для других, у которых возникла эта проблема, у нас было то же сообщение об ошибке с другим решением.У нас не было запущенного безголового браузера:

sudo apt-get install xvfb

решено

...