打印JasperReports客户端?
问题描述:
我开发了一个使用JasperReports的Web应用程序。我注意到这些报告正在打印服务器端。打印JasperReports客户端?
您如何使报告打印客户端(从Web浏览器)?
任何见解都将有所帮助。
答
假设你有一个基于Servlet的架构:
- 在
HttpServletResponse
实例获取一个手柄HttpServletResponse response = this.getThreadLocalResponse();
(例如)。 - 设置各种标题以指示文件附件。
HttpServletResponse response = getServletResponse(); response.setHeader("Content-Description", "File Transfer"); response.setHeader("Content-Disposition", "attachment; filename=" + "report.pdf"); response.setHeader("Content-Type", "application/pdf"); response.setHeader("Content-Transfer-Encoding", "binary");
- 配置
JRExporter
(JRE)使用HttpServletRespone的输出流:jre.setParameter(JRExporterParameter.OUTPUT_STREAM, getOutputStream());
- 执行报告。
浏览器将提示用户将报告保存为PDF文件。用户可以打印PDF。