从Rails视图

时间:2015-06-15 14:07:40

标签: ruby-on-rails pdf prawn

我已经看到很多关于如何使用prawn在浏览器中显示PDF的问题,但我想创建一个PDF文件作为电子邮件中的附件。

目前,我正在使用Rails ActionMailer向我们的商家发送HTML格式的发票。我们已要求生成发票的PDF并将其作为附件发送,以便他们可以保留文件的内部记录。

我希望能够使用我用于发送电子邮件的相同erb模板(这是关键部分),而是输出PDF。这可能是使用Prawn(或其他任何东西)吗?

1 个答案:

答案 0 :(得分:1)

我决定最后使用wicked_pdf,正如我在问题评论中所建议的那样。我能够这样使用它

mail subject: "Order #{order.id}" do |format|
  format.text
    format.html do
      attachments["receipt #{Time.now}.pdf"] = WickedPdf.new.pdf_from_string(
        render_to_string pdf: 'receipt', template: 'order_mailer/order_receipt.html.erb'
      )
      render 'order_receipt'
    end
  end
end

这仍会以HTML和文本形式呈现电子邮件,但也会将PDF附加到使用与邮件程序相同的模板的电子邮件