2011-03-04 97 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>