本地它像魔术一样工作,但当我尝试在服务器上生成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'
答案 0 :(得分:17)
修复了已删除的系统安装wkhtmltopdf
并使用wkhtmltopdf的二进制文件:
apt-get remove wkhtmltopdf --purge
sudo curl -C - -O http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.9.9-static-amd64.tar.bz2
sudo tar -xvjf wkhtmltopdf-0.9.9-static-amd64.tar.bz2
ln -s wkhtmltopdf-amd64 wkhtmltopdf
WickedPdf.config = {
:exe_path => "/usr/local/bin/wkhtmltopdf"
}
答案 1 :(得分:0)
对于遇到此问题的其他人,我们使用不同的解决方案时出现相同的错误消息。我们没有运行无头浏览器:
sudo apt-get install xvfb
解决了它