我想为PDF文件生成使用iText,并且我有一个关于这一代的问题。我想将PDF提供给浏览器,以便浏览器显示它,而无需真正创建文件。iText - 在不需要PDF文件的情况下即时生成文件
什么是最好的方法来实现这一目标?
一个限制是我需要从JSP页面使用它 - 这会绕过“getOutputStream已被调用过一次”的错误,这是我正在寻找的错误。
我想为PDF文件生成使用iText,并且我有一个关于这一代的问题。我想将PDF提供给浏览器,以便浏览器显示它,而无需真正创建文件。iText - 在不需要PDF文件的情况下即时生成文件
什么是最好的方法来实现这一目标?
一个限制是我需要从JSP页面使用它 - 这会绕过“getOutputStream已被调用过一次”的错误,这是我正在寻找的错误。
我想的PDF服务至浏览器,浏览器显示它,而不实际创建文件。
只是通过responsegetOutputStream()
而不是new FileOutputStream
到PdfWriter
。
PdfWriter pdfWriter = PdfWriter.getInstance(document, response.getOutputStream());
// ...
一个限制是,我需要从一个JSP页面中使用它 - 这将规避“的getOutputStream已经被称为一次”错误是我所期待的。
只是删除任何空白外<% %>
在JSP中,包括换行。它们被回应作者隐式发送给回复。
I.e.不
<% 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这样的模板文本,而不是做完全不同的事情。在一个普通的Java类中像servlet那样做。
它写入servlet输出流,记住编码设置为正确的值
这里是我试图运行的代码: ===================== Document document = new Document(); //第2步 PdfWriter.getInstance(document,response.getOutputStream()); //第3步 document.open(); // step 4 document.add(new Paragraph(“Hello World”)); =============================================== =============== itext getOutputStream()已被调用此响应 – oneiros 2012-02-13 21:21:47
我有一些代码,这样做,但我不会得到后t直到早上 - 生病做到这一点,然后 – TrueDub 2012-02-13 23:09:32
还没有忘记这一点 - 我仍然试图找到相关的代码 – TrueDub 2012-02-15 08:22:00
BalusC - 非常感谢你的努力来回答我的问题。对此,我真的非常感激。 – oneiros 2012-02-15 16:03:36