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

时间:2012-02-13 21:17:55

标签: java jsp itext

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

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

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

3 个答案:

答案 0 :(得分:4)

  

我想将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类中执行此操作。

答案 1 :(得分:3)

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

答案 2 :(得分:2)