Сбой команды Rails PDFKit - PullRequest
       9

Сбой команды Rails PDFKit

10 голосов
/ 13 января 2011

Я пытаюсь использовать 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.

Ответы [ 4 ]

6 голосов
/ 11 апреля 2011

Запустите и скопируйте путь

который wkhtmltopdf

Создать config/initializers/pdfkit.rb:

 PDFKit.configure do |config|
   config.wkhtmltopdf = '/path/to/wkhtmltopdf'
 end
3 голосов
/ 06 июля 2011

Кто-то решил проблему и любезно разместил свое решение .

1 голос
/ 11 апреля 2011

wkhtmltopdf, который приходит как драгоценный камень, довольно стар. Удалите этот гем и попробуйте следующий wkhtmltopdf двоичный файл . Загрузите, разархивируйте и переместите в /usr/local/bin/. Это должно помочь.

1 голос
/ 15 февраля 2011

Почему ошибка начинается с

/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
...