Rails:如何保存使用wicked pdf生成的pdf文件

时间:2011-02-15 04:03:51

标签: ruby-on-rails-3 pdf-generation wicked-pdf

我正在使用WickedPdf

respond_to do |format|
  format.html
  format.pdf do
    render :pdf => "file_name"
  end
end  

这很好用。用户可以下载生成的pdf。但我需要将生成的pdf存储在服务器中以用于其他目的,如邮件等 我该如何保存这个生成的pdf?

我尝试了以下但不知道如何将html传递给wickedpdf wicked_pdf doesn't work -- Ruby on Rails

提前致谢

2 个答案:

答案 0 :(得分:9)

你可能已经想到了这一点,但我现在正在学习WickedPdf并且刚学会了如何在respond_to块中直接保存在你的控制器中。这个https://github.com/mileszs/wicked_pdf的Git页面上有很好的文档。这是我在控制器中为show动作提供的内容:

  def show
@user = User.find(params[:id])
respond_to do |format|
  format.html # show.html.erb
  format.pdf do
    render :pdf => "#{@user.name}",
    :save_to_file => Rails.root.join('pdfs', "#{@user.name}.pdf")
  end
end
end  

这最终会将其保存到我的根中名为“pdfs”的文件夹中,作为username.pdf。希望有所帮助。

答案 1 :(得分:1)

据我所知,您无法直接从respond_to块保存文件,您需要某种实际访问该页面并使用 .pdf 扩展名的脚本并保存。

我推荐wkhtmltopdf,因为我经常使用它,它很好地呈现PDF。这将允许您将PDF保存到文件系统。