我的要求是强制系统打开PDF文件而不存储在服务器或客户端系统中。我正在使用java,jsf,iText。但到目前为止我还没有成功。有什么帮助吗?
答案 0 :(得分:0)
这个问题已于前一天在这里得到解答:How to convert pdfstamper to byte array
我没有将您的问题标记为重复,因为您的问题和该问题乍一看似乎有所不同,但这两个问题的答案是相同的:
例如,请参阅FormServlet示例:
// We create an OutputStream for the new PDF
ByteArrayOutputStream baos = new ByteArrayOutputStream();
// Now we create the PDF
PdfStamper stamper = new PdfStamper(reader, baos);
然后在示例中,我们这样做:
// We write the PDF bytes to the OutputStream
OutputStream os = response.getOutputStream();
baos.writeTo(os);
如您所见:我们不使用FileOutputStream
存储PDF(服务器上没有存储文件),但我们使用ByteArrayOutputStream
将文件存储在内存中。然后我们将字节写入响应对象的OutputStream
。
此示例取自包含JSP示例的书籍:http://itextpdf.com:8180/book/helloworld.jsp
然而,本书列出了使用JSP创建PDF的一个坏主意的大量原因。作为JSP开发人员,您知道永远不应该使用JSP来创建二进制格式的文件。 PDF是二进制文件,因此:您应该编写一个Servlet来创建PDF,而不是JSP文件。