2010-07-06 102 views
2

我有一個帶有PDF導出選項的網頁。我必須在PDF中顯示頁面的內容。目前我使用iText PDF庫生成PDF文件。問題在於使用iText創建PDF是相當大的挑戰。此外,我們經常對網頁進行佈局/ UI更改,因此我們對PDF進行了相同的更改。從JSP輸出創建PDF

有什麼辦法可以將我的JSP輸出轉換爲PDF。例如「如果我們將內容類型設置爲contentType =」application/vnd.ms-excel「,則JSP表格可以呈現爲Excel文檔。

+1

*「如果我們將內容類型設置爲contentType =」application/vnd.ms-excel「,則可以將JSP表格呈現爲Excel文檔。」*這句話在技術上是錯誤的。你基本上是愚弄web瀏覽器,給定的HTML頁面是一個Excel工作表,以便webbrowser被強制在關聯的應用程序中打開它。您還正在使用這樣一個事實,即Excel(至少是舊版本)可以解釋HTML表格,而不會抱怨該文件不是按照MIME類型的完全XLS格式。較新的版本會發出警告。 – BalusC 2010-07-06 11:05:32

+0

一旦JSP到達瀏覽器,JSP基本上就是HTML(XHTML,XML),所以要爲HTML實現此目標,然後將該代碼與不同的URL一起用於JSP。 – 2012-10-22 10:51:48

回答

3

您是否檢查過Jasper Reports?它具有XML模板的概念。也相同的模板可用於生成Word/XLS/PDF/CSV/XML輸出。

2

你並不需要更改iText的代碼生成,如果你結合使用它與Flying Saucer(aka XhtmlRenderer)。它然後基本上如此簡單:

String inputPath = new File("/file.xhtml").toURI().toURL().toString(); 
OutputStream outputStream = new FileOutputStream("/file.pdf"); 

ITextRenderer renderer = new ITextRenderer(); 
renderer.setDocument(inputPath); 
renderer.layout(); 
renderer.createPDF(outputStream); 
outputStream.close(); 

你可以找到更多的代碼示例here的博客。