【发布时间】:2014-01-11 20:15:34
【问题描述】:
在 struts1 web 应用程序中,我们有一个 itextpdf 生成器,它直接在 struts servlet 输出流中写入 pdf。我们使用 itextepdf 来生成收据,所以我们需要打印生成的 pdf不向用户展示。用户不能下载收据以避免重复打印同一张收据。实现这一目标的最佳方法是什么? 提供 pdf 的代码是这样的:
public ActionForward printReceipt(final ActionMapping mapping,
final ActionForm form, final HttpServletRequest request,
final HttpServletResponse response) throws Exception {
final OutputStream out = response.getOutputStream();
final Document doc = new Document();
final PdfWriter docWriter = PdfWriter.getInstance(doc, out);
doc.open();
final PdfContentByte cb = docWriter.getDirectContent();
cb.beginText();
// .. write all required data in the pdf
doc.close();
docWriter.close();
out.flush();
out.close();
return mapping.findForward(null);
}
【问题讨论】:
-
你能显示出提供 PDF 响应的代码吗?
-
您希望 Web 应用程序能够在客户端计算机上打印某些内容,而无需或可能进行任何用户交互?据我所知,这将是相关浏览器中的一个主要安全漏洞。
-
它是一个企业应用程序。在这种情况下安全性没有问题。
标签: java javascript itext struts-1