Ответ 1
Кто-то решил проблему, и любезно разместил свое решение.
Я пытаюсь использовать PDFKit в качестве промежуточного программного обеспечения в приложении rails 3.
Я могу использовать wkhtmltopdf из командной строки только отлично, но мое приложение продолжает бросать мне эту ошибку
command failed: "/Users/bobby/.rvm/gems/ruby-1.9.2-p0/bin/wkhtmltopdf" "--page-size" "Letter" "--margin-top" "0.75in" "--margin-right" "0.75in" "--margin-bottom" "0.75in" "--margin-left" "0.75in" "--encoding" "UTF-8" "--print-media-type" "--quiet" "-" "-"
Если я запустил это в терминале, он ждет ввода, поэтому я набираю HTML-код, затем нажимаю Ctrl-d, и он плюет то, что кажется некоторым PDF файлом... но не везет в рельсах.
Вот что у меня есть:
application.rb
require File.expand_path('../boot', __FILE__)
require 'rails/all'
require 'pdfkit'
Bundler.require(:default, Rails.env) if defined?(Bundler)
module Mpr
class Application < Rails::Application
YEARS_ARRAY = (2006..2012).map {|y| [y,y]}.unshift(["Year",nil])
MONTHS_ARRAY = (1..12).map{|m| [ Date::MONTHNAMES[m], m]}.unshift(["All months",nil])
config.middleware.use "PDFKit::Middleware", :print_media_type => true
PDFKit.configure do |config|
config.wkhtmltopdf = '/Users/bobby/.rvm/gems/ruby-1.9.2-p0/bin/wkhtmltopdf'
end
end
end
в моем контроллере (первая строка)
respond_to :html, :pdf
Я думаю, что я прошел через все потоки на SO, Github и Google, но не повезло.
Может ли кто-нибудь помочь или указать мне в правильном направлении?
спасибо, P.
Кто-то решил проблему, и любезно разместил свое решение.
Запустить и скопировать путь
который wkhtmltopdf
Создать config/initializers/pdfkit.rb
:
PDFKit.configure do |config|
config.wkhtmltopdf = '/path/to/wkhtmltopdf'
end
Почему ошибка начинается с
/Users/bobby/..., но ваша конфигурация начинается с
/Users/pierrelapree/...
Edit:
Еще одна разница между вашим кодом и примером в README: https://github.com/pdfkit/PDFKit заключается в том, что они показывают config.middleware.use
, принимая аргумент класса или модуля, а не строка.
Попробуйте изменить этот
config.middleware.use "PDFKit::Middleware", :print_media_type => true
к этому
config.middleware.use PDFKit::Middleware, :print_media_type => true
wkhtmltopdf
, который появляется как драгоценный камень, довольно старый. Удалите этот камень и попробуйте следующий wkhtmltopdf двоичный файл. Загрузите, распакуйте и переместите его на /usr/local/bin/
. Это должно помочь.