首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Prawn & Prawnto生成Rails PDF

使用Prawn & Prawnto生成Rails PDF
EN

Stack Overflow用户
提问于 2009-12-17 04:50:50
回答 1查看 5.8K关注 0票数 1

这可能更多地是一个设计或使用问题,但主要问题是使用带有Rails 2.3.4的Prawn插件,并访问生成的PDF对象将其呈现为一个文件。

基本情况是;

  • 带有respond_to块设置的控制器
  • 视图具有将文本、图形等呈现为PDF

的代码

看上去:

来自客户控制器

代码语言:javascript
复制
def show    
    @customer = Customer.find(params[:id])  

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @customer }
      format.pdf  { render :layout => false  }
end

从客户角度看

代码语言:javascript
复制
  pdf.text "Hello World"  
  pdf.text "Customer is #{@customer.name}"

这很好,生成一个PDF文件以响应/customers/1.pdf,就像预期的那样,生成一个PDF文件。

其他要求之一是将pdf呈现到文件中,并将副本存储在服务器上。对虾提供的方法:pdf.render_file {path_tofile}

因此,如果我在View代码中包括了这个内容,我当然可以将文件保存在服务器上。但是我想在控制器中管理它,因为它与逻辑有关,而不是视图本身。

第一次尝试是:

代码语言:javascript
复制
def show    
   @customer = Customer.find(params[:id])
   @pdf = Prawn::Document.new()  

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @customer }
      format.pdf  { render :layout => false  }
      pdf.render_file {path_to_file}
end

从客户角度看

代码语言:javascript
复制
  pdf.text "Hello World"  
  pdf.text "Customer is #{@customer.name}"

问题这种尝试的问题是没有呈现PDF。我怀疑Controller实例变量与Prawnto插件pdf变量发生冲突。但是,即使更改PDF变量也不起作用。有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-12-17 10:06:07

这就是我在rails应用程序中使用对虾的方式:http://yob.id.au/2009/05/30/prawn-and-x-accel-redirect.html --它根本不使用对虾。

除非使用nginx,否则可以忽略X重定向的内容。

或者,另一个对虾核心开发人员将本指南组合在一起:http://wiki.github.com/sandal/prawn/using-prawn-in-rails

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

https://stackoverflow.com/questions/1919533

复制
相关文章

相似问题

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