我想在我的webapp
提供打印功能。
我不想下载的文件,然后打印 - 我想提供直接打印功能,使用户不必下载文件和打印。
当窗体或报表显示给用户,他得到报告上的打印按钮,当他点击打印按钮可用打印机显示或假设打印机对话框打开。
完整的Web应用程序是内置的j2ee
,所以我需要在JSP / Servlet中的解决方案。
请帮助。
最简单的方法是,以显示IFRAME的内容和使用JavaScript window.print
功能。显示在iframe中可打印的内容,以避免打印所有页面。
EDITED
在JSP中:
<html>
<head>
<!-- what you need -->
</head>
<body>
<iframe name=="my-iframe" src="/your-context/showPdfServlet"></iframe>
<!-- buttons -->
</body>
Servlet的:
protected void doGet(...) {
// generate pdf file through jasper report
byte[] pdf = ...;
response.setHeader("Content-Disposition", "inline;filename=pdf-report.pdf");
response.setContentType("application/pdf");
response.setContentLength(pdf.length);
OutputStream responseOutputStream = response.getOutputStream();
responseOutputStream.write(pdf);
responseOutputStream.flush();
responseOutputStream.close();
// ...
}
打印按钮的onclick javascript函数:
window.frames["my-iframe"].focus();
window.frames["my-iframe"].print();