wkhtmltopdf RuntimeError (местонахождение wkhtmltopdf неизвестно) - PullRequest
8 голосов
/ 11 октября 2011

Я использую Ubuntu 11.04 для разработки приложения на Ruby on Rails.В приложении мне нужно создать PDF-документы.Поэтому я использую гемы wicked_pdf и wkhtmltopdf-binary.

В среде разработки в моей системе все работает нормально.Но как только я развернул приложение в рабочей среде на CentOS 5.6 с помощью Phusion Passenger, когда я пытаюсь сгенерировать pdf-файлы на лету, оно выдает мне следующую ошибку:

RuntimeError (Местоположение wkhtmltopdf неизвестно)

Я использую Ruby1.9.2.p136 Rails 3.1.1

Любая помощь будет высоко ценится .... Спасибо.

Ответы [ 6 ]

10 голосов
/ 27 декабря 2013

Альтернативой является установка бинарного файла через Gemfile.

Просто добавьте в него следующую строку:

gem 'wkhtmltopdf-binary'

Это должно добавить бинарную поддержку linux-i386, amd64 и darwin.

10 голосов
/ 11 октября 2011

вы используете статический двоичный файл wkhtmltopdf?я скачал его здесь и извлек его в /path/to/rails_app/bin

и добавил его в рельсы следующим образом:

#config/initializers/wicked_pdf.rb
WickedPdf.config = {
  :exe_path => Rails.root.join('bin', 'wkhtmltopdf-i386').to_s,
}
8 голосов
/ 30 августа 2012

для Mac OS - X вы должны установить wkhtmltopdf с помощью homebrew

$ brew tap homebrew/boneyard # the wkhtmltopdf formula is now inactive but still available in the boneyard repository 
$ brew install wkhtmltopdf
4 голосов
/ 27 октября 2014

Решение для OS X Yosemite

Чтобы заставить его работать на Mac OS X 10.10 (Yosemite), установите гем wkhtmltopdf-binary и затем поместите его в 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.

1 голос
/ 10 февраля 2017

MAC OSX:

brew install wkhtmltopdf

это позволит вам установить

brew install Caskroom/cask/wkhtmltopdf

затем в config/initializers/wicked_pdf.rb

WickedPdf.config = {
  exe_path: '/usr/local/bin/wkhtmltopdf'
}
0 голосов
/ 16 сентября 2015

Просто была похожая проблема.

Как указано в readme , я создал инициализатор с:

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