4

我目前运行 Rails 3.1 并使用最新版本的 Wicked_pdf 生成 PDF。我已经正确设置了所有内容,并且 PDF 生成得很好。

但是,我希望用户能够单击一个按钮来下载 pdf。目前,当单击时,浏览器会呈现 pdf 并将其显示在页面上。

<%= link_to "Download PDF", { :action => "show", :format => :pdf }, class: 'button nice red large radius', target: '_blank'%>

我的控制器。

def show
    @curric = Curric.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @curric }
      format.pdf do
        render :pdf => @curric.name + " CV",
        :margin => {:top                => 20,  
                    :bottom             => 20 }

      end
    end
  end

我一直指向 send_file,但完全不知道如何在这种情况下使用它。

任何帮助表示赞赏。

4

4 回答 4

13

分解需要设置为“附件”的配置,例如:

respond_to do |format|
  format.pdf do
    render pdf: @curric.name + " CV",
           disposition: 'attachment'
  end
end
于 2015-11-20T05:54:46.763 回答
4

我是这样做的:

  def show
    @candidate = Candidate.find params[:id]

    respond_to do |format|
      format.html
      format.pdf do
        @pdf = render_to_string :pdf => @candidate.cv_filename,
            :encoding => "UTF-8"
        send_data(@pdf, :filename => @candidate.cv_filename,  :type=>"application/pdf")
      end
    end    

  end

它对我有用;-)

于 2011-12-15T12:13:26.487 回答
3

咱们试试吧:

pdf = render_to_string :pdf => @curric.name + " CV",
                       :margin => {:top     => 20,  
                                   :bottom  => 20 }
send_file pdf
于 2011-10-27T14:56:51.300 回答
0
//Download pdf generated from html template using wicket_pdf gem 
pdf = render_to_string :template => "simple/show" // here show is a show.pdf.erb inside view

send_data pdf
于 2014-01-01T16:19:20.487 回答