Estoy usando Rails para generar un PDF con el archivo ejecutable wkhtmltopdf y luego uso de send_data para enviar el resultado al usuario como un archivo PDF.Rails send_data lanza "secuencia de bytes no válida en UTF-8" ... pero ¿por qué?
view = ActionView::Base.new(ActionController::Base.view_paths, {})
html = "<h1>A heading</h1>"
pdfdata = `echo '#{html}' | #{RAILS_ROOT}/lib/pdf/wkhtmltopdf-i386 - -`
send_data pdfdata, :filename => 'readthis.pdf', :disposition => 'attachment', :type => "application/pdf"
El PDF se genera correctamente, pero se queja de rieles ArgumentError (invalid byte sequence in UTF-8)
del método send_data. Cambiarlo para enviar "foobar" como :type => text/html
lo hace funcionar, por lo que definitivamente tiene un problema con pdfdata
.
No entiendo. ¿No se supone que send_data
envía datos binarios? Por supuesto, no es válido UTF-8. ¿O me estoy perdiendo algo?
Gracias
¿Qué versión de ruby estás usando? ¿Send_file funciona? ¿Trató también disposición => en línea? –
Estoy usando Ruby 1.9.1 – doctororange