从Rails的HTML页面生成PDF

我正在寻找一种工具,将HTML视图页面从Rails转换为PDF。 我希望样式完好无损,并且应该能够识别CSS样式。 我听说过Prince XML和Wicked PDF。 我想知道使用其中一个的优点和缺点。 另外,我想知道PDF的呈现是否在样式方面有任何问题(样式是否会被正确呈现)。 如果还有其他工具,请告知相关信息。

谢谢王子

PDFkit与我所看到的相当不错,但我是wicked_pdf的忠实粉丝,因为你可以通过文件获得细粒度的控制。

PrinceXML和王子很棒,但很贵。 DocRaptor是一个很棒的网络服务,可以让你沾沾自喜 ,但王子真正做的事情比免费的基于wkhtmltopdf的解决方案更好的是它能够在不削减表格行和重复标题的情况下正确地执行分页操作。

免责声明:我是wicked_pdf的维护者之一,也是运行DocRaptor的人的好朋友。

你可以使用’wicked_pdf’gem。 它为使用html代码生成pdf提供了非常好的支持。

在控制器中:

def show @report = Report.find(params[:id]) respond_to do |format| format.html # show.html.erb format.pdf do render :pdf => "report",:template => "reports/show" end end end 

创建一个show.pdf.erb,你可以编写简单的html。

 <%= wicked_pdf_stylesheet_link_tag "application" %> 

Report

<%= @report.details %> .................................

Prince绝对是PDF生成中最好的。 有一个名为DocRaptor.com的Web服务与Prince XML合作。 您可以使用他们的API以任何语言生成PDF和Excel文档,而无需支付Prince许可费,也无需下载任何内容。

Rubyprince,

有几种方法可以在Rails中生成PDF。 Railscasts制作了三个关于该主题的截屏video。

就个人而言,如果您想要创建具有强烈造型的高品质打印件,我建议使用PrinceXML。 PrinceXML的不幸部分是价格标签,但是你得到了很多费用。 有一个名为princely的Ruby gem可以帮助您将API抽象为Ruby调用。 我最喜欢Prince的是你能够使用CSS生成标准的打印材料。 页面编号,目录与领导者。 我建议看一下博客文章在Ruby on Rails中创建PDF文档 – 它有点旧,但是这些信息可以让你了解使用PrinceXML是什么样的。

PDFkit ,它使用WebKit渲染引擎( wkhtmltopdf ),与safari相同。 这意味着你可以做任何在safari中工作的CSS样式。 易于安装,效果很好。

-webkit-gradient -webkit-border-radius等等,直到你内心的内容:)

注意:wicked_pdf也使用wkhtmltopdf,但在我看来,PDFkit使用起来有点好。

Flying Saucer是生成pdf的另一种选择.Flying saucer是一个java库,你可以使用acts_as_flying_saucer gem或插件来生成PDF。