2012-03-12 139 views
4

上本地它的工作原理像变魔术一样,但是当我尝试生成的服务器时,它trows的PDF:wicked_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

你能你的问题的最后部分添加为回答和接受,作为答案以后呢?这将帮助他人了解状态是什么... – mliebelt 2012-03-13 14:37:51

+0

@mliebelt完成。 – 2012-03-13 15:57:18

回答

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" }
+0

这也适用于'pdfkit'。 – Kris 2012-05-28 14:50:54

+0

下载链接已损坏。试试这个新链接http://download.gna.org/wkhtmltopdf/obsolete/linux/wkhtmltopdf-0.9.9-static-amd64.tar.bz2 – Calvin 2016-10-14 14:33:30

+0

这个安装需要在本地系统中完成吗?或者需要将其安装在AWS上? – John 2016-12-21 08:25:21

0

对于其他人遇到这个问题,我们用了同样的错误信息不同的解决方案。我们没有一具无头浏览器中运行:

sudo apt-get install xvfb 

解决它