2008-10-25 234 views
40

有誰知道是否可以使用iText將HTML頁面(url)轉換爲PDF?使用iText將HTML轉換爲PDF

如果答案是「不」比這是確定的,以及因爲我不再浪費我的時間,試圖解決它,只是花一些錢在許多組件,我知道一個可以:)

預先感謝您的回覆!

+5

UPDATE:iText的確實將HTML轉換爲PDF格式,但它的樣式表支持是參差不齊。 5.0.6於2011年2月發佈,包括對相關代碼進行大修,幾乎沒有明顯的行爲改變。下一個版本將包含HTML-> PDF功能的重大改進。 – 2011-02-07 17:47:48

+1

確實檢查:[xmlworker](https://sourceforge.net/projects/xmlworker/)除了iText之外,它支持更多的CSS。 – Redlab 2011-05-13 00:58:46

+0

更新:找到這個新的線程,其中總結真正好當前選項http://stackoverflow.com/questions/4055838/best-commercial-html-to-pdf-c-component – Mark 2011-08-10 04:39:44

回答

7

我已經結束了從webSupergoo使用ABCPdf。 它運作得非常好,大約350美元,根據您的意見,節省了我的時間和小時。 再次感謝Daniel和Bratch的評論。

-1

今年早些時候我需要HTML到PDF的轉換,我嘗試了Winnovative HTML to PDF Converter(我認爲ExpertPDF也是同樣的產品)。它工作得很好,所以我們在該公司購買了一個許可證。那之後我不會深入討論它。

29

我想,這正是你要找的

http://today.java.net/pub/a/today/2007/06/26/generating-pdfs-with-flying-saucer-and-itext.html

http://code.google.com/p/flying-saucer

飛碟的主要目的是渲染spec-compli ant XHTML和CSS 2.1作爲Swing組件顯示在屏幕上。雖然它最初是爲了將標記嵌入到桌面應用程序(比如iTunes音樂商店)中,但飛碟已經擴展了iText的工作。這使得XHTML很容易呈現爲PDF,以及圖像和屏幕。飛碟需要Java 1.4或更高版本。

1

的回答你的問題實際上是兩個倍的。首先,您需要指定您打算如何處理呈現的HTML:將其保存到一個新的PDF文件中,或者在另一個渲染上下文中使用它(即將其添加到您正在生成的其他文檔中)。

前者是使用飛碟框架,它可以在這裏找到相對容易實現:https://github.com/flyingsaucerproject/flyingsaucer

後者實際上是一個更加綜合性的問題,需要進一步分類。 使用iText,您將無法(至少微不足道)將iText元素(即Paragraph,Phrase,Chunk等)與生成的HTML組合在一起。您可以通過使用ContentByteaddTemplate方法並生成此模板的HTML來解決這個問題。

如果您另一方面想要將生成的HTML用水印,日期之類的東西標記,可以使用iText來完成。

所以底線:您不能在其他pdf生成上下文中將渲染的HTML集成,但您可以將HTML直接渲染爲空白PDF文檔。

3

這樣做的最簡單方法是使用pdfHTML。 這是一個將HTML5(+ CSS3)轉換爲pdf語法的iText7插件。

的代碼非常簡單:

HtmlConverter.convertToPdf(
     "<b>This text should be written in bold.</b>",  // html to be converted 
     new PdfWriter(
      new File("C://users/mark/documents/output.pdf") // destination file 
     ) 
    ); 

要了解更多信息,請訪問http://itextpdf.com/itext7/pdfHTML