2012-09-19 50 views
1

我在我的Rails應用程序中使用WickedPDF來生成PDF文件。它在我的本地機器上運行良好。在生產中我看到下面的錯誤在我的日誌:生產模式下惡意的PDF生成錯誤

Started GET "/financieel/facturen/2.pdf" for 81.205.74.167 at 2012-09-19 14:58:37 +0200 
    Processing by InvoicesController#show as PDF 
    Parameters: {"id"=>"2"} 
***************WICKED*************** 
Rendered invoices/show.pdf.haml (6.9ms) 
Completed 500 Internal Server Error in 38ms 

NoMethodError (undefined method `chomp' for nil:NilClass): 
    app/controllers/invoices_controller.rb:22:in `block (2 levels) in show' 
    app/controllers/invoices_controller.rb:17:in `show' 

在invoices_controller.rb沒有什麼不尋常的:

format.pdf do 
    render pdf: 'factuur' 
end 

回答

1

也許這條線,其中wicked_pdf試圖猜測您的wkhtmltopdf二進制文件,導致你的麻煩:https://github.com/mileszs/wicked_pdf/blob/master/lib/wicked_pdf.rb#L207

如果wkhtmltopdf實際上是安裝在服務器上,可能做的是專門設置爲wkhtmltopdf你的路徑,像這樣一個初始的最好的事情:

# config/initializers/wicked_pdf.rb 
WickedPdf.config = { :exe_path => '/opt/bin/wkthmltopdf' } # or wherever it actually is 
+0

缺省情況下,WickedPDF正在搜索/ usr/local/bin/wkhtmltopdf。我將它安裝到/ usr/bin/wkhtmltopdf並設置了符號鏈接到/ usr/local/bin/wkhtmltopdf。 另外,從rails控制檯生成PDF文件的效果非常好。 –

+0

它現在已經修復!我從源代碼編譯它。顯然,他的git存儲庫中的最新代碼有效。將exe_path更改爲新的二進制文件修復了它。 –