Rails发送电子邮件至pdf

时间:2016-02-04 15:42:37

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

我尝试使用rails 4应用程序中的wicked_pdf gem将电子邮件呈现为pdf文件。

这样的手术可能吗?我试过了

ApplicationController.new.render_to_string :text => email.body, :format => :pdf, :template => 'wicked_pdf/template', :layout => 'wicked_pdf'

但是会产生一个空字符串。请注意,即使不使用模板,我也可以通过渲染来创建它们。

email.body可以用任何字符串替换为相同的结果。

这两个文件都是空的,只有<%= yield %>

2 个答案:

答案 0 :(得分:1)

来自Wicked PDF文档:

  

wkhtmltopdf二进制文件在Rails应用程序之外运行;因此,您的正常布局将无法正常工作。如果您计划使用任何CSS,Javascript或图像文件,则必须修改布局,以便提供对这些文件的绝对引用。

这就是我通常渲染恶意PDF文件的方式。

    pdf = WickedPdf.new.pdf_from_string(
      ActionController::Base.new().render_to_string(:template => YourTemplate, :locals => {:something => @something})
    ) 

希望有所帮助。

答案 1 :(得分:0)

我从rii的回答中推断出正确的解决方案:

如果您已经有字符串或html文本,只需调用

即可将其呈现为pdf
pdf = WickedPdf.new.pdf_from_string(email.body)

无需调用任何渲染。所以你不需要任何模板或任何东西。