我正在使用Ubuntu 11.04在Ruby on Rails中开发应用程序。 在应用程序中,我需要生成pdf文档。所以我正在使用 wicked_pdf和wkhtmltopdf-binary gems。
在我的系统的开发环境中,一切正常。 但是,一旦我使用Phusion在CentOS 5.6上部署应用程序 乘客,当我试图动态生成pdf时,它给我以下错误:
RuntimeError(wkhtmltopdf的位置未知)
我使用的是Ruby1.9.2.p136 Rails 3.1.1
任何帮助将不胜感激....谢谢。
答案 0 :(得分:10)
你使用静态wkhtmltopdf二进制文件?我将其下载here并将其加到/path/to/rails_app/bin
并将其添加到rails中:
#config/initializers/wicked_pdf.rb
WickedPdf.config = {
:exe_path => Rails.root.join('bin', 'wkhtmltopdf-i386').to_s,
}
答案 1 :(得分:10)
另一种方法是通过Gemfile安装二进制文件。
只需添加以下行:
gem 'wkhtmltopdf-binary'
那应该为linux-i386,amd64和darwin添加二进制支持。
答案 2 :(得分:8)
对于mac os - x你应该通过homebrew安装wkhtmltopdf
$ brew tap homebrew/boneyard # the wkhtmltopdf formula is now inactive but still available in the boneyard repository
$ brew install wkhtmltopdf
答案 3 :(得分:4)
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。
答案 4 :(得分:1)
MAC OSX:
brew install wkhtmltopdf
这将允许您安装
brew install Caskroom/cask/wkhtmltopdf
然后在config/initializers/wicked_pdf.rb
WickedPdf.config = {
exe_path: '/usr/local/bin/wkhtmltopdf'
}
答案 5 :(得分:0)