如何使用Prawn在Sinatra中生成表格数据的PDF?
我的表单位于网站的索引操作,但Prawn无法识别传入的变量。我在http://prawnpdf.org/docs/0.11.1/Prawn/Document.html的文档中找到了此代码。
get '/download' do
content = "Hello World"
Prawn::Document.generate "example.pdf" do |pdf|
pdf.font "Times-Roman"
pdf.draw_text content, :at => [200,720], :size => 32
end
end
现在这很好,但是当我尝试从这样的参数传递我的变量时:
post '/resume' do
@name = params.fetch 'name'
...
end
然后,如果我将其添加到/ download路线中,如下所示:
get '/download' do
Prawn::Document.generate "example.pdf" do |pdf|
pdf.font "Times-Roman"
pdf.draw_text @name, :at => [200,720], :size => 32
end
end
它什么都不会画。另外,奇怪的是,它生成了一个pdf文件,但没有重定向到它,我必须手动加载它。
真的坚持这个 - 建议?
答案 0 :(得分:1)
Every request creates a new instance of your Sinatra app to serve it。因此,实例变量在两个不同的请求中不会相同。您需要使用多种方法之一来保存数据(cookie,本地存储,数据库,缓存等),或者您需要将Prawn逻辑放在POST路由中。