4

ローカルでは魔法のように機能しますが、サーバーで 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'
4

2 に答える 2

17

インストールされているシステムの削除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" }
于 2012-03-13T15:56:54.080 に答える
0

この問題が発生している他のユーザーには、別の解決策で同じエラー メッセージが表示されました。実行中のヘッドレス ブラウザーはありませんでした。

sudo apt-get install xvfb

解決した

于 2013-05-15T15:31:11.533 に答える