创建pdf并通过电子邮件发送

时间:2014-11-06 21:48:53

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

我正在开设电话结算应用程序。 我创建了简单的Rails应用程序,包含3个表Client,Invoice,CallRecord。 我可以浏览我的虚拟数据,一切正常。 我想添加一项功能,通过电子邮件将发票发送给客户。 我正在考虑在发票上显示一个简单的链接/按钮#show view:发送发票。

我正在查看WickedPDF gem,因为它将从HTML生成pdf。

我有三个问题:

1)WickedPDF对我想要的东西有益吗?    我不是试图向浏览网站的用户提供PDF。我不想让它可下载。    我只需要生成它并在点击发送发票时保存它,如果它还没有生成。然后使用rails mailer将其发送给客户端,将生成的副本保存在服务器上(所有这些都将在自定义控制器操作中完成)。

2)存储这个生成的pdf的最佳位置在哪里? Assets文件夹中的自定义文件夹,公用文件夹?

3)你会如何使用rails保存文件?我做了一些铁轨但是我从来没有做过这个方向。

1 个答案:

答案 0 :(得分:2)

  1. 您可以直接使用Wicked-PDF而不使用。{ 控制器:

    pdf = WickedPdf.new.pdf_from_string(&#39; <h1>Hello There!</h1>&#39;)

  2. WickedPdf.new.pdf_from_string(
      render_to_string('templates/pdf.html.erb', :layout => 'pdfs/layout_pdf'),
      :footer => {
        :content => render_to_string(:layout => 'pdfs/layout_pdf')
      }
    ) # which is awesome
    
    1. 存储它们应该以类似的格式存放在公共文件夹中:

      公共/用户/:USER_ID /:INVOICE_ID

    2. 您应该考虑使用sidekiq或其他东西作为延迟作业,因为生成需要时间,用户不应该等到生成。