2010-07-06 95 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的博客。