【发布时间】:2010-07-06 07:16:06
【问题描述】:
我正在使用 Rails 生成带有可执行 wkhtmltopdf 的 PDF,然后使用 send_data 将结果作为 PDF 文件发送回用户。
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"
PDF 生成正确,但 Rails 从 send_data 方法中抱怨 ArgumentError (invalid byte sequence in UTF-8)。将其更改为以:type => text/html 发送“foobar”使其工作,因此pdfdata 肯定有问题。
我不明白。 send_data 不应该发送二进制数据吗?当然,它不是有效的 UTF-8。还是我错过了什么?
谢谢
【问题讨论】:
-
您使用的是哪个版本的 ruby? send_file 有效吗?你也试过 disposition => inline 吗?
标签: ruby-on-rails utf-8