2011-03-04 35 views
8

我正在寻找一个工具来将HTML视图页面从Rails转换为PDF格式。我希望样式完整无缺,并且应该能够识别CSS样式。我听说过Prince XML和Wicked PDF。我想知道使用其中之一的优点和缺点。另外,我想知道PDF的渲染是否存在与样式有关的问题(样式是否会被正确呈现)。如果还有其他工具,请通知他们。从Rails的HTML页面生成PDF格式

感谢, 王子

回答

12

PDFkit从我看到的相当不错,但我是wicked_pdf的忠实粉丝,您可以通过您的文档获得细致的控制。

PrinceXMLprincely是伟大的,但昂贵。 DocRaptor是一款优秀的网络服务,可让您畅游脚趾,但唯一的事情是王子真的比基于免费wkhtmltopdf的解决方案做得更好,它能够在不削减表格行数和重复标题的情况下正确执行分页。

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

1

PDFkit,它采用了WebKit渲染引擎(wkhtmltopdf),同野生动物园。这意味着你可以做任何在safari中工作的css样式。易于安装和工作良好。

-webkit-梯度-webkit-边界半径等等等等,直到你的心脏的内容:)

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

2

Rubyprince,

有几种方法可以生成从内部Rails的PDF文件。 Railscasts已经制作了三个该主题的屏幕录像。

个人但如果你想创建一个强大的造型高质量的印刷品我建议PrinceXML。 PrinceXML的不幸的部分是价格标签,但是您会花费很多成本。有一个名为princely的Ruby宝石,可帮助您将API抽象为Ruby调用。我最喜欢王子的是你用CSS生成印刷材料标准的能力。页码,带领导的目录。我建议看一下博客文章Creating PDF Documents in Ruby on Rails - 这有点旧了,但是这些信息会告诉你怎么使用PrinceXML。

+0

谢谢,前两个RailsCasts不能用于从HTML ... PrinceXML创建PDF绝对是我最名单.. – rubyprince 2011-03-04 13:57:03

3

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

1

飞碟是生成PDF的另一种选择。飞碟是一个java库中的轨道 你可以使用acts_as_flying_saucer宝石或插件来生成PDF。

+0

好的库和gem..gr8从创业板本身的笔者听到: )..但我已经使用PDFKit的目的..将在下一个项目中尝试:) – rubyprince 2011-09-06 06:49:45

4

您可以使用'wicked_pdf'宝石。它提供了非常好的支持,使用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" %> 
<h1> Report </h1> 
<p> 
<%= @report.details %> 
................................. 
</p>