wkhtmltopdf RuntimeError(wkhtmltopdf的位置未知)

我正在使用Ubuntu 11.04在Ruby on Rails中开发应用程序。 在应用程序中,我需要生成pdf文档。 所以我使用的是wicked_pdf和wkhtmltopdf-binary gems。

在我的系统的开发环境中,一切正常。 但是一旦我使用Phusion Passenger在CentOS 5.6上部署应用程序,当我尝试动态生成pdf时,它会给我以下错误:

RuntimeError(wkhtmltopdf的位置未知)

我使用的是Ruby1.9.2.p136 Rails 3.1.1

任何帮助将不胜感激….谢谢。

你使用静态wkhtmltopdf二进制文件? 我在这里下载并将其引入/path/to/rails_app/bin

并将其添加到rails如下:

 #config/initializers/wicked_pdf.rb WickedPdf.config = { :exe_path => Rails.root.join('bin', 'wkhtmltopdf-i386').to_s, } 

另一种方法是通过Gemfile安装二进制文件。

只需添加以下行:

 gem 'wkhtmltopdf-binary' 

这应该为linux-i386,amd64和darwin添加二进制支持。

对于mac os – x,您应该通过自制软件安装wkhtmltopdf

 $ brew tap homebrew/boneyard # the wkhtmltopdf formula is now inactive but still available in the boneyard repository $ brew install wkhtmltopdf 

OS X约塞米蒂的解决方案

要使其在Mac OS X 10.10(Yosemite)上运行,请安装wkhtmltopdf-binary gem,然后将其放入config/initializers/wicked_pdf.rb

 module WickedPdfHelper if Rails.env.development? if RbConfig::CONFIG['host_os'] =~ /linux/ executable = RbConfig::CONFIG['host_cpu'] == 'x86_64' ? 'wkhtmltopdf_linux_x64' : 'wkhtmltopdf_linux_386' elsif RbConfig::CONFIG['host_os'] =~ /darwin/ executable = 'wkhtmltopdf_darwin_386' else raise 'Invalid platform. Must be running linux or intel-based Mac OS.' end WickedPdf.config = { exe_path: "#{Gem.bin_path('wkhtmltopdf-binary').match(/(.+)\/.+/).captures.first}/#{executable}" } end end 

Ps。:此解决方案也适用于Linux。

MAC OSX:

 brew install wkhtmltopdf 

这将让你安装

 brew install Caskroom/cask/wkhtmltopdf 

然后在config/initializers/wicked_pdf.rb

 WickedPdf.config = { exe_path: '/usr/local/bin/wkhtmltopdf' } 

刚遇到类似的问题。

如自述文件中所述 ,我创建了一个初始化程序:

 WickedPdf.config = { exe_path: '/usr/local/bin/wkhtmltopdf' }