ruby-on-rails - 如何在 Ruby on Rails 中设置 prawn pdf 文件名?

标签 ruby-on-rails pdf-generation prawn

我所拥有的是响应 html 和 pdf 文件格式的 Controller 操作,如下所示:

   def detail
      @record = Model.find(params[:id])
      respond_to do |format|
         format.html # detail.html.erb
         format.pdf { render :layout => false } #detail.pdf.prawn
      end
   end

但是当我得到文件时,它带有名称:1.pdf 2.pdf取决于 params[:id]我如何将文件名设置为 myfile.pdf
- 更新 -

我的 detail.pdf.prawn 的例子文件
pdf.font "Helvetica" pdf.image open("http://localhost:3000/images/myImage.png"),:position => :left,:width=>100 pdf.text "some text" pdf.table(someData,:cell_style => { :border_width => 0.1,:border_color=> 'C1C1C1' }) do |table| table.row(0).style :background_color => 'D3D3D3' table.column(0..1).style(:align => :left) table.column(2..4).style(:align => :center) table.column(0).width = 100 table.column(1).width = 250 table.column(3..4).width = 68 table.row(2).column(0..2).borders = [] table.row(2).column(3).style(:font_style => :bold, :align => :right) end
format.pdf { render :layout => false }在 Controller 中使用 detail.pdf.prawn 上的说明呈现 de pdf 文件

最佳答案

详细说明 fl00r 的答案,如果您使用 prawnto,则 pdf 设置参数可以进入您的 Controller ,包括文件名。

def detail
 @record = Model.find(params[:id])
 prawnto :prawn => { :page_size => 'A4', 
                     :left_margin => 50,    
                     :right_margin => 50,   
                     :top_margin => 80,    
                     :bottom_margin => 50}, 
             :filename => @record.name, :inline => true #or false


      respond_to do |format|
         format.html # detail.html.erb
         format.pdf { render :layout => false } #detail.pdf.prawn
      end
   end

如果您使用 prawnto 创建大量不同的 pdf,您可能会将配置移到它自己的方法中。但如果你只做一个,在 Controller 中就可以了。

注意:PDF url 仍会显示,例如1.pdf 但是当他们保存 PDF 时,文件名参数将显示在保存框对话框中。

关于ruby-on-rails - 如何在 Ruby on Rails 中设置 prawn pdf 文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5708506/

相关文章:

ruby - 准备用作 Prawn 模板的 PDF

python - 为什么 Python 的框架从 Controller 返回字典?

ruby-on-rails - Pundit::NotAuthorizedError/pundit 授权问题

ruby-on-rails - Errno::ETIMEDOUT:连接超时 - connect(2)

ruby-on-rails - Prawn PDF中的页眉和页脚

java - pdf 文件中的可扩展列表

ruby-on-rails - ActiveStorage 和 s3 - 默认设置所有公开的图像

javascript - 如何处理浏览器尚未调用代码的 SJR 响应?

ios - 从 UIView 转换后的 PDF 不完整

asp.net - itextsharp文件没有页面