背景介绍:本地 server 要访问文件服务器上的一个文件,两者不是同一个服务器,需要在请求到 pdf 文件后,render 到新打开的标签页。 尝试采用生成新 pdf 方式,生成新的空白 pdf 文件可以正常在新页面打开 (用 user 作为测试没问题) 遇到问题:请求远程的文件内容后追加到新的空白文档时提示不能包含非 utf8 编码的文件 Arguments to text methods must be UTF-8 encoded 不知道用这种思路解决问题是否合适?请教各位高人指点,谢谢!@Rei @leopku @nightire @ruby_sky
class FileController < ApplicationController
require 'net/http'
require 'open-uri'
def show
user= User.find(3)
send_data generate_pdf(user),
:filename => "#{user.name}.pdf",
:type => "application/pdf",
:disposition => "inline"
end
private
def generate_pdf(user)
# uri ='http://192.168.1.100/pdf/2347bdb5adf1c81775836b.pdf'
uri = 'www.cninfo.com.cn/finalpage/2013-08-29/63017888.PDF'
remote_full_url = URI(uri)
remote_data = open(remote_full_url).read
puts remote_data
Prawn::Document.new do
text user.name, :align => :center
#如果text后面的是remote_data的时候提示Arguments to text methods must be UTF-8 encoded
end.render
end
end