iText – 无需PDF文件即可生成文件

我正在尝试使用iText生成pdf文件,我对这一代有疑问。 我想将PDF提供给浏览器,以便浏览器显示它,而无需实际创建文件。

实现这一目标的最佳方法是什么?

一个限制是我需要在JSP页面中使用它 – 这将绕过“getOutputStream已被调用一次”错误是我正在寻找的。

我想将PDF提供给浏览器,以便浏览器显示它,而无需实际创建文件。

只需将responsegetOutputStream()而不是new FileOutputStream传递给PdfWriter

 PdfWriter pdfWriter = PdfWriter.getInstance(document, response.getOutputStream()); // ... 

一个限制是我需要在JSP页面中使用它 – 这将绕过“getOutputStream已被调用一次”错误是我正在寻找的。

只需删除JSP中<% %>外的任何空格,包括换行符。 它们被响应编写者隐式发送给响应。

不,不

 <% page import="foo" %> <% page import="bar" %> <% for (int i = 0; i < 1000; i++) { out.println("I should not use scriptlets."); } %> (newline here) 

但更重要的是

 <% page import="foo" %><% page import="bar" %><% for (int i = 0; i < 1000; i++) { out.println("I should use servlets."); } %> 

或者更好的是,不要将Java代码放在JSP文件中。 JSP文件旨在呈现像HTML一样的模板文本,而不是完全不同的东西。 在像servlet这样的普通Java类中执行此操作。

将其写入servlet输出流,记住将编码设置为正确的值

这个http://onjava.com/onjava/2003/06/18/dynamic_files.html解释了如何做到这一点