2013-02-28 51 views
0

我想在我的rails 3應用程序中使用wicked_pdf。我按照所有的教程和我收到此錯誤:無法讓wkhtmltopdf在rails中工作

Failed to execute: 
"/usr/local/bin/wkhtmltopdf" -q  "file:////var/folders/_b/50kywsc97r95gvr9gy9nr6700000gn/T/wicked_pdf20130228-874-a51lgi.html" "/var/folders/_b/50kywsc97r95gvr9gy9nr6700000gn/T/wicked_pdf_generated_file20130228-874-1ihqg74.pdf" 

我知道wkhtmltopdf在正確的地方存在,因爲當我輸入其wkhtmltopdf我上面顯示的路徑。當我嘗試再次安裝時,我也會被告知它在那裏。此外,當我輸入wkhtmltopdf google.com google.pdf它運行良好。

我的控制器看起來是這樣的:

def show #shows some material 
@material = Material.find(params[:id]) 
    respond_to do |format| 
    format.html 
    format.pdf do 
     render :pdf => '#{@material.id}', 
      :wkhtmltopdf => '/usr/local/bin/wkhtmltopdf' 
    end 
    end 

有什麼建議?這看起來像是一個wkhtmltopdf問題還是一個wicked_pdf問題?我已經安裝了所有軟件包並捆綁了一切。我已經添加了wkhtmltopdf-binary gem(這不應該是必需的)。它也不適用於heroku。

+0

你可以設置一個標誌,呈現的東西,HTML,工作的呢? – phoet 2013-02-28 17:34:02

+0

我不確定你的意思。這個想法是把這些東西渲染成PDF格式;它已經作爲html工作。或者我錯過了這點(很可能)? – Finnjon 2013-03-01 08:12:21

+2

通常,您在自定義標題中包含pdf(pagenumber等)中的其他信息。你可以設置'''show_as_html''作爲一個選項,在輸出到wkhtmltopdf之前查看輸出。這非常適合確保渲染實際上按預期工作。 – phoet 2013-03-01 20:51:47

回答

0

聽起來像可能有一些wkhtmltopdf圖像那裏。如果rails試圖使用/ usr/local/bin/wkhtmltopdf,請嘗試從終端執行/ usr/local/bin/wkhtmltopdf命令並查看是否有任何問題正在運行。如果您從不同的gem安裝中獲得幾份副本,那麼在您的搜索路徑中首先運行的副本可能不是一個rails正在嘗試的副本。

希望它能幫助

鮑勃

0

首先驗證二進制

  1. 打開終端提示位置,並鍵入

    $ which wkhtmltopdf

在我的機器的回報是

/usr/local/bin/wkhtmltopdf

  1. 驗證二進制運作良好

    wkhtmltopdf google.com google它必須產生與谷歌網頁

  2. PDF文件在你的初始化創建一個類

Look at my gist

而這一切