使用 WickedPDF 在 ActionMailer 中生成和发送 PDF
Generating and sending PDF in ActionMailer with WickedPDF
我正在使用 rails 4.2 并使用以下代码在 actionmailer 中生成 pdf:
attachments["abc.pdf"] = WickedPdf.new.pdf_from_string(
render_to_string(template: "pdf_templates/abc.html", header: {
content: render_to_string(layout: "header.html")
}, margin: {
top: 50, left: 50
})
)
mail to: @user.email, subject: "bla blubb"
它工作正常并呈现 abc.html.erb。但它忽略边距标签和头文件...如果我在 header.html.erb 中输入错误 rails 正在大喊 - 所以必须找到并处理它。
我也试过这个但是同样的问题:
pdf = render template: "pdf_templates/abc.html", footer: {spacing: 20, left: "ABDCDSAFASDF"}
attachments["abc.pdf"] = WickedPdf.new.pdf_from_string(pdf)
我读到了 ActionMailer 的一些问题但无法解决它们,因为我正在使用 rails 4:
wicked_pdf not loading header or footer in ActionMailer
Rails3 - wicked_pdf gem, footer issue when calling from action mailer model
有趣,以为我尝试了 unixMonkey 推荐的 include。现在我再次尝试,它适用于以下代码...感谢您将我推向正确的方向。
class WelcomeMailer < ApplicationMailer
include PdfHelper
helper(MailerHelper)
def new_customer(user)
@user = user
test = render_to_string_with_wicked_pdf(
pdf: "test.pdf",
template: "pdf_templates/abc.html",
header: {html: {template: "pdf_templates/header.html"}}
)
attachments["abc.pdf"] = test
mail to: @user.email, subject: "blaa blubb"
end
end
我正在使用 rails 4.2 并使用以下代码在 actionmailer 中生成 pdf:
attachments["abc.pdf"] = WickedPdf.new.pdf_from_string(
render_to_string(template: "pdf_templates/abc.html", header: {
content: render_to_string(layout: "header.html")
}, margin: {
top: 50, left: 50
})
)
mail to: @user.email, subject: "bla blubb"
它工作正常并呈现 abc.html.erb。但它忽略边距标签和头文件...如果我在 header.html.erb 中输入错误 rails 正在大喊 - 所以必须找到并处理它。
我也试过这个但是同样的问题:
pdf = render template: "pdf_templates/abc.html", footer: {spacing: 20, left: "ABDCDSAFASDF"}
attachments["abc.pdf"] = WickedPdf.new.pdf_from_string(pdf)
我读到了 ActionMailer 的一些问题但无法解决它们,因为我正在使用 rails 4:
wicked_pdf not loading header or footer in ActionMailer
Rails3 - wicked_pdf gem, footer issue when calling from action mailer model
有趣,以为我尝试了 unixMonkey 推荐的 include。现在我再次尝试,它适用于以下代码...感谢您将我推向正确的方向。
class WelcomeMailer < ApplicationMailer
include PdfHelper
helper(MailerHelper)
def new_customer(user)
@user = user
test = render_to_string_with_wicked_pdf(
pdf: "test.pdf",
template: "pdf_templates/abc.html",
header: {html: {template: "pdf_templates/header.html"}}
)
attachments["abc.pdf"] = test
mail to: @user.email, subject: "blaa blubb"
end
end