2010-08-12 12 views
5

He configurado PDFKit en mi aplicación Rails 3, usando RVM (tuve que copiar manualmente el binario wkhtmltopdf). Cuando trato de hacer que la versión en PDF de una página, me sale este error:Rails 3 - El comando wkhtmltopdf falló al usar PDFKit para crear documentos PDF

 
RuntimeError in AgenciesController#show 

command failed: ["lib/wkhtmltopdf/wkhtmltopdf", "--disable-smart-shrinking", "--page-size", "Letter", "--margin-top", "0.75in", "--margin-right", "0.75in", "--margin-bottom", "0.75in", "--margin-left", "0.75in", "--encoding", "UTF-8", "--quiet", "\n.......\n", "-"] 

El siguiente es en mi applicaition.rb:

 
    config.middleware.use "PDFKit::Middleware" 
    PDFKit.configure do |config| 
    config.wkhtmltopdf = 'lib/wkhtmltopdf/wkhtmltopdf' 

    end 

de ideas de por qué ocurre esto? ¿Cómo puedo arreglarlo?

En la consola, me di cuenta de este mensaje:

 
(sometimes it will work just to ignore this error with --ignore-load-errors) 

¿Dónde invoco ese interruptor? wkhtmltopdf parece funcionar bien en la línea de comandos, puedo hacer algo como "./wkhtmltopdf http://www.google.com google.pdf" y generar un PDF.

Gracias por su ayuda,

Peter

+0

Intenté config.wkhtmltopdf con la ruta absoluta, reinicié el servidor, pero obtuve el mismo error. – futureshocked

+0

¿Logró obtener la solución para ello? He almacenado ejecutables en 'my_app_path/lib/wkhtmltopdf' Como dijiste que funciona desde la terminal. Pero no funciona cuando ejecuto el servidor Webrick en modo de producción. Cualquier ayuda sería apreciada. Gracias – TheMouseMan

+0

No, abandoné este enfoque ya que no estaba funcionando para lo que estaba tratando de hacer, y fui a Gambas (https://github.com/prawnpdf/prawn). – futureshocked

Respuesta

5

a juzgar por el código fuente, puede configurar opciones en PDFKit. Creo que el siguiente trabajo:

PDFKit.configure do |config| 
    config.default_options[:ignore_load_errors] = true 
end 

(no he probado, aunque)

+1

Eso funcionó para que la aplicación no se bloquee cuando cargué una página con .pdf. La página PDF, sin embargo, se vuelve en blanco. ¿Qué podría estar causando eso? – futureshocked

+0

Supongo que 'wkhtmltopdf' falla. No estoy seguro de qué hacer con eso sin embargo. – troelskn

1

he usado este truco.

config.wkhtmltopdf = `which wkhtmltopdf`.gsub(/\n/, '') 

cuyo comando devuelve una nueva línea al final.

0

Dado que ya tiene wkhtmltopdf instalado y parece estar funcionando, tal vez le dé una oportunidad a wicked_pdf. Me está funcionando muy bien en mi aplicación Ruby 1.9 Rails 3. Es igual de fácil, pero le da un poco más de control sobre lo que puede obtenerse como un pdf haciendo que use explícitamente render :pdf => 'my_template' cuando desee un pdf. Por supuesto, puede colocar eso dentro de un bloque respondeds para bloquearlo si lo desea.

ps En caso de que no fuera claro, wicked_pdf también usa wkhtmltopdf.

4

Lo busqué en google y encontré la respuesta en un blog.

solución está aquí:

dependencias Instalación

$sudo aptitude install openssl build-essential xorg libssl-dev 

Para 64bits OS Ejecute uno por uno siguientes comandos:

$ sudo wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.9.9-static-amd64.tar.bz2 
$ sudo tar xvjf wkhtmltopdf-0.9.9-static-amd64.tar.bz2 
$ sudo mv wkhtmltopdf-amd64 /usr/local/bin/wkhtmltopdf 
$ sudo chmod +x /usr/local/bin/wkhtmltopdf 

Por último, ir a sus rieles app/config/initializer carpeta y crear un nuevo archivo pdfkit.rb y pegue el siguiente código en él:

PDFKit.configure do |config| 
    config.wkhtmltopdf = '/usr/local/bin/wkhtmltopdf' if Rails.env.production? 
end 

Eso es todo. Ahora su archivo pdf será descargado. También visite para obtener más información: http://www.stormconsultancy.co.uk/blog/development/generating-pdfs-in-rails-with-pdfkit-and-deploying-to-a-server/

Gracias.

Cuestiones relacionadas