当前位置:  开发笔记 > 前端 > 正文

Rails:将HTML转换为PDF?

如何解决《Rails:将HTML转换为PDF?》经验,为你挑选了3个好方法。

采用HTML并将其转换为PDF的最佳和最简单的方法是什么,类似于在ColdFusion上使用CFDOCUMENT?

更新:我非常感谢人们迄今给出的所有意见和建议,但我觉得人们遗漏了他们的答案.

1)解决方案必须是免费的或开源的.一个人建议使用pricexml和另一个pd4ml.这两种解决方案都需要花钱(价格是花费一条腿和一条腿),这不是关于岔路口的问题.

2)他们必须能够接受html(从文件,url或字符串变量),然后生成pdf.像prawn,rprf,rtex这样的库是使用自己的方法生成的,而不是使用html.

请不要认为我对这些建议不感恩,只是对于像我这样使用ColdFusion但想转换为Rails的人来说,pdf生成似乎是一个真正的问题.



1> Sebastian..:

宝石,WickedPDF,不正是这一点.



2> fl00r..:

现在最棒的是PDFKit用于这项工作:

https://github.com/pdfkit/PDFKit

http://railscasts.com/episodes/220-pdfkit



3> Sajjad Murta..:

试试WickedPDF,PDF生成器(来自HTML)插件.

这是一个例子

gem 'wicked_pdf'  
gem 'wkhtmltopdf-binary' 
#wicked_pdf is a wrapper for wkhtmltopdf, you'll need to install that, too

在你的控制器中(我猜你是在show方法):

    respond_to  do |format|
      format.html
      format.pdf do
        pdf = render_to_string :pdf => 'test',
                         layout: 'pdf.html.erb',
                         template: 'show.pdf.slim',
                         header: { :right => '[page] of [topage]'},
                         margin: {top: 0,
                                  bottom: 0,
                                  left: 0,
                                  right: 0},
                         outline: {outline: true,
                                   outline_depth: 2}
        end
     end

在您的PDF链接视图中

= link_to 'Download Pdf', you_show_path(@uour_object, format: :pdf)

如果您想在电子邮件附件中发送pdf,请首先将您的pdf文件保存在公共或临时文件夹中,然后保存在邮件程序类中(例如,在mailers/e_mailer.rb中)

attachments["test.pdf"] = File.read(Rails.root.join('public',"test.pdf"))
mail(:to => to, :cc => cc , :subject => "subject")

发送电子邮件后,您可以删除文件

File.delete(Rails.root.join("public", "test.pdf"))

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有