Rails: wkhtmltopdf RuntimeError (Location of wkhtmltopdf unknown)
I am using Ubuntu 11.04 to develop开发者_如何学运维 an app in Ruby on Rails. In the app I need to generate pdf documents. So I am using the wicked_pdf and wkhtmltopdf-binary gems.
In the development environment in my system everything is working fine. But once I deployed the app in production on CentOS 5.6 using Phusion Passenger, when I try to generate pdfs on the fly its giving me the following error:
RuntimeError (Location of wkhtmltopdf unknown)
I am using Ruby1.9.2.p136 Rails 3.1.1
Any help will be much appreciated....Thanks.
An alternative is to install the binary via the Gemfile.
Just add the following line to your production group:
gem 'wkhtmltopdf-binary'
That should add binary support for linux-i386, amd64, and darwin.
And then run
bundle install --without development test
to install the gem in a production environment. After which, you just restart your server.
That's all.
I hope this helps
do you use static wkhtmltopdf binary? i downloaded it here and extraced it to /path/to/rails_app/bin
and add it to rails like this:
#config/initializers/wicked_pdf.rb
WickedPdf.config = {
:exe_path => Rails.root.join('bin', 'wkhtmltopdf-i386').to_s,
}
for mac os - x you should install wkhtmltopdf by homebrew
$ brew tap homebrew/boneyard # the wkhtmltopdf formula is now inactive but still available in the boneyard repository
$ brew install wkhtmltopdf
Solution for OS X Yosemite
To get it working on Mac OS X 10.10 (Yosemite), install the wkhtmltopdf-binary
gem and then put it in your 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.: This solution will work on Linux too.
MAC OSX:
brew install wkhtmltopdf
this will let you to install
brew install Caskroom/cask/wkhtmltopdf
then in config/initializers/wicked_pdf.rb
WickedPdf.config = {
exe_path: '/usr/local/bin/wkhtmltopdf'
}
Just had a similar problem.
As stated in readme, I created an initializer with:
WickedPdf.config = {
exe_path: '/usr/local/bin/wkhtmltopdf'
}
精彩评论