如何在Ruby on Rails中设置大虾pdf文件名?
我所拥有的是响应 html 和 pdf 文件格式的控制器操作,如下所示:
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 { 渲染:布局=> false }
在控制器中按照 detail.pdf.prawn
上的说明渲染 pdf 文件
What i have is the controller action responding to html and pdf file format like this:
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
but when i get the file it comes with the name: 1.pdf
2.pdf
depending on the params[:id]
how do i set the filename to myfile.pdf
--UPDATE--
Example of my detail.pdf.prawn
file
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
and the format.pdf { render :layout => false }
in the controller renders de pdf file with the instructions on detail.pdf.prawn
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
为了详细说明 fl00r 的答案,如果您使用 prawnto,pdf 设置参数可以放入您的控制器中,包括文件名。
如果您使用 prawnto 创建许多不同的 pdf,您可能会将配置移至其自己的方法中。但如果您只在控制器中执行此操作就可以了。
注意:PDF url 仍将显示,例如 1.pdf,但是当他们保存 PDF 时,文件名参数将显示在保存框对话框中。
To elaborate on fl00r's answer, If your using prawnto, the pdf setup params can go in your controller, including the filename.
If you are creating lot's of different pdf's with prawnto, you would probably move the config out into it's own method. but if your only doing the one, in the controller is fine.
NOTE: the PDF url will still display e.g. 1.pdf But when they save the PDF the filename param will show up in the save box dialog.
真的谢谢,这篇文章对我的旧 pdf 方式很有帮助。还有另一种使用Rails的
prawn
的方法。您可以查看这个链接。不是我的,但是一个很好的制作教程。只是可能对那些仍然困惑如何制作的人说。我之前使用过这种方法,然后我从该链接转移到方法。对此进行一些研究真的很有趣。
Really thanks, this post really help my old pdf way. There is another way to using
prawn
of Rails. You can check oh this link. Not mine, but a good tutorial for making it. Just saying probably for anyone that still confuse how to make it.I was using this method before, then I moved on method from that link. Really fun for doing some research about it.
如果是 prawn-rails 或 prawn_plus 你可以在控制器中执行以下操作。
If prawn-rails or prawn_plus you may do following in controller.