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' }