谢谢, Prince
PDFKit 在我看来非常不错,但是我更喜欢 wicked_pdf,因为它可以让你对文档进行细致的控制。
PrinceXML 和 princely 很棒,但是价格较高。如果你想尝试一下,DocRaptor 是一个不错的网络服务,但唯一比基于免费 wkhtmltopdf 的解决方案优秀的是它能够正确处理分页、不会剪切表格行和重复头部。
声明:我是 wicked_pdf 的维护者之一,也是 DocRaptor 的好朋友。
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
<%= wicked_pdf_stylesheet_link_tag "application" %>
<h1> Report </h1>
<p>
<%= @report.details %>
.................................
</p>
Prince是PDF生成方面绝对最好的。有一个名为DocRaptor.com的Web服务与Prince XML合作。您可以使用他们的API在任何语言中生成PDF和Excel文档,而无需支付Prince许可费用,也不需要下载任何东西。
Rubyprince,
在Rails中有很多方法可以生成PDF文件。Railscasts已经制作了三个与此相关的视频教程。
但是如果您想要创建具有强烈样式的高质量印刷品,我个人建议使用PrinceXML。不幸的是,PrinceXML的价格标签很高,但是您获得了很多价值。有一个名为princely的Ruby gem,可以帮助您将API抽象成Ruby调用。我最喜欢Prince的地方是可以使用CSS生成标准印刷材料的内容。例如:页码、带有引导线的目录等。我还建议阅读一下这篇博客文章Creating PDF Documents in Ruby on Rails——它有些旧,但其中的信息会让您了解PrinceXML的使用方式。
Flying Saucer是生成pdf的另一种选择。Flying Saucer是一个在Rails中的Java库,您可以使用acts_as_flying_saucer宝石或插件来生成PDF。
PDFkit,它使用了一个WebKit渲染引擎(wkhtmltopdf),与Safari相同。这意味着您可以使用在Safari中有效的任何CSS样式。易于安装且效果良好。
-webkit-gradient -webkit-border-radius等等,尽情发挥吧 :)
注意:wicked_pdf也使用wkhtmltopdf,但我认为PDFkit使用起来更加舒适。