【问题标题】:Generate PDF file from Rails view从 Rails 视图生成 PDF 文件
【发布时间】:2015-08-31 01:47:48
【问题描述】:
我在 SO 上看到了很多问题,详细说明了如何使用 prawn 在浏览器中显示 PDF,但我想创建一个 PDF 文件用作电子邮件中的附件。
目前,我正在使用 Rails ActionMailer 向我们的商家发送 HTML 格式的发票。我们被要求生成发票的 PDF 格式并将其作为附件发送,以便他们保留文件以供内部记录使用。
我希望能够使用我用来发送电子邮件的相同 erb 模板(这是关键部分),而是输出 PDF。这可以使用虾(或其他任何东西)吗?
【问题讨论】:
-
Wicked PDF 将从 Web 视图 (erb) 生成 PDF 文件,而不是像 Prawn 那样单独编写脚本。这就是你要找的东西吗?
标签:
ruby-on-rails
pdf
prawn
【解决方案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 附加到使用与邮件程序相同模板的电子邮件中