2013-02-28 139 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

而这一切