2013-01-01 36 views
1

我在使用pdf_kit gem生成PDF文件時遇到了問題。 如果我跑在我的應用程序控制臺的命令(RAILS_ENV =生產鋼軌C):rails和pdfkit無法從控制器生成pdf

kit = PDFKit.new(html, :page_size => 'Letter') 
file = kit.to_file('./demo.pdf') 

我可以看到正確生成PDF文件,但如果我嘗試動作控制器同樣的事情,以這種方式:

kit = PDFKit.new("ciao") 
kit.to_file('/root/app/bidimal/demo1.pdf') 

我得到這個錯誤在production.log

RuntimeError (command failed: "/root/.rbenv/shims/wkhtmltopdf" "--encoding" "UTF-8" "--page-size" "A4" "--margin-top" "0.25in" "--margin-right" "0.25in" "--margin-bottom" "0.25in" "--margin-left" "0.25in" "--quiet" "-" "/root/app/bidimal/demo1.pdf"): 
    app/controllers/winners_controller.rb:69:in `invoice' 

我已經通過檢查wkhtmltopdf的路徑:

which wkhtmltopdf 
/root/.rbenv/shims/wkhtmltopdf 

所以我想這是正確的。順便說我有這個在配置/初始化/ pdfkit.rb

PDFKit.configure do |config| 
    config.wkhtmltopdf = '/root/.rbenv/shims/wkhtmltopdf' 
    config.default_options[:ignore_load_errors] = true 
    config.default_options = { 
    :encoding=>"UTF-8", 
    :page_size=>"A4", 
    :margin_top=>"0.25in", 
    :margin_right=>"0.25in", 
    :margin_bottom=>"0.25in", 
    :margin_left=>"0.25in", 
    :disable_smart_shrinking=>false 
    } 
end 

我下的nginx +乘客,這個問題可以以某種方式在任何nginx的設置有關(如流程提供等)? 謝謝

+0

我從這裏http://code.google.com/p/wkhtmltopdf/downloads/list下載了正確的bin,並更改了pdfkit.rb以指向它。它工作正常 –

+1

所以你的問題解決了?如果是這樣,請考慮發佈答案或結束問題。 – PinnyM

回答

1

最近我開始有了wkhtmltopdf-binary gem的問題......我還不確定發生了什麼。

要解決它,我做了以下內容:

  1. 我從我的Gemfile
  2. 取出wkhtmltopdf二進制寶石,我也有過這樣的寶石安裝在我的rbenv環境。我登錄到服務器並通過執行gem卸載來刪除它wkhtmltopdf-binary
  3. 我在我的系統上直接安裝了wkhtmltopdf可執行文件。 (我是在Ubuntu所以我的命令是命令和apt-get安裝wkhtmltopdf)
  4. 我在Rails應用程序「配置/初始化/ pdfkit.rb」創建初始化具有以下

PDFKit.configure do |config| config.wkhtmltopdf = '/usr/local/bin/wkhtmltopdf' end

並且everthing再次開始工作。

+0

非常感謝! –