2011-01-13 16 views
10

Estoy tratando de usar PDFKit como middleware en la aplicación rails 3.Rails Comando PDFKit fallido

puedo usar 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 esto en el terminal, espera a mi entrada, así que escribir algo de HTML, entonces presiona Ctrl-d y escupe lo que parece ser un PDF ... pero no hay suerte en los rieles.

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 sin suerte.

¿Alguien puede ayudarme o señalarme en la dirección correcta?

gracias, P.

Respuesta

1

¿Por qué empezar con el error

/Users/bobby/...
sin embargo, su configuración se inicia con
/Users/pierrelapree/...

Editar:

Otra diferencia entre el código y el ejemplo en el README: https://github.com/pdfkit/PDFKit es que muestran config.middleware.use tomando un argumento de clase o módulo, no una cadena.

trate de cambiar esta

config.middleware.use "PDFKit::Middleware", :print_media_type => true

a este

config.middleware.use PDFKit::Middleware, :print_media_type => true
+0

Malo, lo revisé y son lo mismo. He corregido la pregunta – Pierre

+0

¿Todavía se ve diferente en la pregunta? De todos modos, otra sugerencia arriba. – jemminger

1

El wkhtmltopdf que viene como una joya es bastante antiguo. Desinstale esta joya e intente con el siguiente wkhtmltopdf binary file. Descargue, descomprima y muévalo al /usr/local/bin/. Debería ayudar.

6

Ejecutar y copie la ruta

cuales wkhtmltopdf

Crear :

PDFKit.configure do |config| 
    config.wkhtmltopdf = '/path/to/wkhtmltopdf' 
end 
+1

Esta respuesta me ha solucionado un enorme dolor de cabeza dos veces. –

Cuestiones relacionadas