2011-04-18 97 views
4

我有什麼是控制器動作響應HTML和PDF文件格式是這樣的:如何在Ruby on Rails中設置對蝦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.pdf2.pdf取決於params[:id]如何設置文件名我detail.pdf.prawn文件來myfile.pdf

--UPDATE--

 

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 }呈現上detail.pdf.prawn

+0

顯示你的'detail.pdf.prawn' – fl00r 2011-04-18 20:34:21

+0

檢查更新 – 2011-04-19 15:38:53

回答

0
prawnto :filename => "myfile", :prawn => { 
    ... 
} 
+0

首先,我對視圖'detail.pdf.prawn'做了這個或者我應該在控制器'detail'動作中做這件事? – 2011-04-19 14:45:26

+0

顯示您的details.pdf.prawn。你用'prawnto'嗎? – fl00r 2011-04-19 15:01:26

+0

檢查這個問題的更新,我添加了我的'detail.pdf.prawn'文件的內容 – 2011-04-19 15:38:29

4

爲了詳細說明fl00r的答案,如果您使用prawnto,PDF格式設置PARAMS可以去在你的控制器,包括文件名與說明德pdf文件。

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 

如果您正在創建的不同的PDF與prawnto很多的,你可能會移出的配置到它自己的方法。但如果你只是做了那個,在控制器中是沒有問題的。

注意:PDF網址仍會顯示例如1.pdf但是,當他們保存PDF時,文件名參數將顯示在保存框對話框中。

+0

得到這個錯誤'語法錯誤,意外=>,期待keyword_end prawnto:prawn =>:filename => @ hotel_shell.address。 hotel_code' – maahd 2016-02-09 12:20:22

+0

想通了。基本上必須添加'{:page_size =>'A4'},' – maahd 2016-02-09 13:04:52

0

真的非常感謝,這篇文章確實幫助我的老的 pdf方式。還有另一種使用Rails的prawn的方法。你可以檢查這個link。不是我的,但是一個很好的教程。只是說可能對任何人仍然混淆如何做到這一點。

我之前正在使用這個方法,然後我從那個鏈接移動了方法。真的很樂意做一些關於它的研究。