首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails,Prawn - PDF显示在浏览器等

Rails,Prawn - PDF显示在浏览器等
EN

Stack Overflow用户
提问于 2011-09-03 10:40:40
回答 3查看 11.3K关注 0票数 16

我在试着理解虾pdf的创业板。

我能让它生成一个pdf。宝石档案中的每一个宝石包括:

代码语言:javascript
运行
复制
gem 'mysql', '~> 2.8.1'
gem 'prawn', '~> 0.12.0'
gem 'pdf-reader', '~> 0.10.0'
gem 'Ascii85', '~> 1.0.1'

在config/application.rb中:

代码语言:javascript
运行
复制
config.autoload_paths << "#{Rails.root}/app/reports"

然后在控制器中:

代码语言:javascript
运行
复制
 require 'prawn'

 def index
  pdf = Prawn::Document.new
  pdf.text "Hello World"
  pdf.render_file "x.pdf"
 end

而不是我称之为索引函数。名为x.pdf的PDF是在我的应用程序根目录中创建的。在and文件中,rakefile和config.ru。

问题:

如何强制

  1. 在app/report (或任何其他选定的)文件夹中生成文件?
  2. 如何在浏览器窗口中生成文件而不保存?如何使其在浏览器窗口中保存和显示?
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-03 12:37:16

我怎样才能强迫对虾在app/report (或任何其他选定的)文件夹中生成文件?

代码语言:javascript
运行
复制
def index
  pdf = Prawn::Document.new
  pdf.text "Hello World"
  pdf.render_file File.join(Rails.root, "app/report", "x.pdf")
end

如何使操作生成浏览器窗口中的文件而不保存它?

代码语言:javascript
运行
复制
def index
  pdf = Prawn::Document.new
  pdf.text "Hello World"
  send_data pdf.render, :filename => "x.pdf", :type => "application/pdf"
end

如何使其保存并显示在浏览器窗口中?

代码语言:javascript
运行
复制
def index
  pdf = Prawn::Document.new
  pdf.text "Hello World"
  filename = File.join(Rails.root, "app/report", "x.pdf")
  pdf.render_file filename
  send_file filename, :filename => "x.pdf", :type => "application/pdf"
end
票数 34
EN

Stack Overflow用户

发布于 2012-06-08 01:43:15

回答问题3:“如何使其保存并显示在浏览器窗口中?”

代码语言:javascript
运行
复制
def index
  pdf = Prawn::Document.new
  pdf.text 'Hello World'
  send_data pdf.render, filename: 'x.pdf', type: 'application/pdf', disposition: 'inline'
end

disposition: 'inline'将强制浏览器(如果可以的话)在当前浏览器窗口中显示PDF。

票数 20
EN

Stack Overflow用户

发布于 2011-09-03 12:14:19

试试这个:

代码语言:javascript
运行
复制
 def index
  pdf = Prawn::Document.new
  pdf.text "Hello World"
  send_data pdf.render, :filename => "x.pdf", :type => "application/pdf"
 end

也就是说,除了一个微不足道的PDF之外,您可能希望在控制器之外的某个地方生成它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7292625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档