Carriles falló comando PDFKit
-
10-10-2019 - |
Pregunta
Estoy tratando de utilizar PDFKit como middleware en una aplicación Rails 3.
Me puede utilizar wkhtmltopdf desde la línea de comandos muy bien, pero mi aplicación me mantiene lanzar este error
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" "-" "-"
Si corro en este terminal, que espera a mi entrada, por lo escribo algo de HTML, a continuación, pulse Ctrl-D y escupe lo que parece ser un poco de PDF ... pero no hubo suerte en los carriles.
Esto es lo que tengo:
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
en mi controlador (primera línea)
respond_to :html, :pdf
Creo que he pasado por todas las discusiones sobre SO, Github y Google, pero no hubo suerte.
¿Alguien puede ayudar o me punto en la dirección correcta?
gracias, P.
Solución
Someone solved the problem and kindly posted their solution.
Otros consejos
Run and copy the path
which wkhtmltopdf
Create config/initializers/pdfkit.rb
:
PDFKit.configure do |config|
config.wkhtmltopdf = '/path/to/wkhtmltopdf'
end
The wkhtmltopdf
that comes as a gem is quite old. Uninstall this gem and try to the following wkhtmltopdf binary file. Download, unzip and move it to /usr/local/bin/
. It should help.
Why does the error start with
/Users/bobby/...yet your config starts with
/Users/pierrelapree/...
Edit:
Another difference between your code and the example in the README: https://github.com/pdfkit/PDFKit is that they show config.middleware.use
taking a class or module argument, not a string.
Try changing this
config.middleware.use "PDFKit::Middleware", :print_media_type => true
to this
config.middleware.use PDFKit::Middleware, :print_media_type => true