He estado buscando el uso de PDFKit para generar informes en PDF para una aplicación Rail 3 en la que estoy trabajando. Básicamente, si uso PDFKit como middleware, cualquier página en la aplicación está muy bien representada en pdf, incluidos los gráficos generados por JavaScript.PDFkit javascript issues
Sin embargo, quiero usar un diseño diferente para informes PDF que elimina cualquiera de la barra lateral o de navegación detalles para que en lugar de utilizar la opción de middleware que he estado jugando con la adición de lo siguiente a la acción del controlador correspondiente
format.pdf {
html = render_to_string(:action => "show.html.erb", :layout => "report.html.erb")
kit = PDFKit.new(html)
kit.stylesheets << "#{Rails.root}/public/stylesheets/application.css"
send_data kit.to_pdf, :filename => "file.pdf", :type => :pdf}
(también probé la opción más ordenado de extraer esta funcionalidad a una opción de procesador como Katz describe here pero la lógica y el problema son los mismos)
esto definitivamente soluciona mi problema de diseño, pero parece que ninguno de los JavaScript de la aplicación e se ejecuta y los gráficos ya no aparecen. Eché un vistazo a la fuente de PDFKit, pero no pude encontrar diferencias importantes en la forma en que se producen los archivos PDF.
Todavía estoy encontrando mis pies con un montón de cosas con rieles, así que estoy seguro de que es probablemente algo bastante obvio que me está mirando a la cara. Cualquier indicador que cualquier persona podría tener sería muy apreciada
en realidad mirando a la fuente de middleware un poco más cuidadosamente que se parece a los caminos de javascript necesitan ser traducidos a su forma absoluta para que wkhtmltopdf puede encontrar los recursos. También hay una sección de solución de problemas de la página PDFKit github que básicamente señala esto también. Voy a publicar mi solución aquí una vez que la haya ordenado – Conor