mlu*_*own 4 java jsf jboss seam
我有一个JSF/Seam Web应用程序,其中有一个页面,其中包含一个表单,当提交(按钮单击)时,会根据表单输入动态创建PDF文件(在Java,服务器端).目前我的工作是将生成的PDF作为文件下载返回到浏览器,因此用户可以选择保存或在Acrobat Reader中打开它以进行后续打印.
我想要发生的是PDF被发送到浏览器并打印(客户端)而无需进一步的用户干预(好吧,除了可能出现的Windows打印机选项对话框,我无能为力).
该解决方案似乎是基于具有隐蔽iframe加载PDF到其中的页面上,然后调用.contentWindow.print()上iframe.但是,我不知道如何通过HttpServletResponse(在Java中)将PDF放入iframe ,更不用说在加载pdf后如何在iframe上自动调用print()了.
但是,我不知道如何通过
HttpServletResponse(在Java中)将PDF放入iframe
让我们<iframe src>指向一个servlet URL,它获取InputStreamPDF的一部分并将其写入OutputStream响应的URL .如有必要,您可以将JSF bean属性作为附加GET参数传递,以便您可以控制PDF生成.
<iframe src="pdfServlet?foo=#{bean.foo}&bar=#{bean.bar}"></iframe>
Run Code Online (Sandbox Code Playgroud)
有doGet()问题的servlet 的方法可能如下所示:
String foo = request.getParameter("foo");
String bar = request.getParameter("bar");
response.setContentType("application/pdf");
InputStream input = generatePdfSomehowBasedOn(foo, bar);
OutputStream output = response.getOutputStream();
// Now just write input to output.
Run Code Online (Sandbox Code Playgroud)
一旦加载pdf,如何在iframe上自动调用print()更少.
挂上一个功能<iframe onload>.但是,您需要考虑浏览器特定的行为.在这个问题中可以找到更多提示:如何在Safari/Chrome中从javascript打印IFrame
| 归档时间: |
|
| 查看次数: |
4326 次 |
| 最近记录: |