带有 spring MVC 的 JasperReport:在客户端打印报告而不显示它
JasperReport with spring MVC : print report on client side without displaying it
我正在开发 Spring MVC - Angularjs 应用程序。
我需要打印报告,我选择了 JasperReport 来做。
在继续之前,我想知道是否可以生成报告,然后直接在客户端计算机上设置的默认打印机(可以根据用户更改的打印机)上打印它没有在屏幕上显示它。
我一直在寻找有关此特定需求的答案,但找不到任何答案。
如果有人知道的话....
生成报告并打印的来源:
HashMap<String, Object> params = new HashMap<String, Object>();
params.put("Title", "My Report");
InputStream reportStream = this.getClass().getResourceAsStream(TEMPLATE);
JasperDesign jd = JRXmlLoader.load(reportStream);
JasperReport jr = JasperCompileManager.compileReport(jd);
JasperPrint jp = JasperFillManager.fillReport(jr, params, datasource.getDataSource());
JasperPrintManager.printReport(jp, false);
您可以在 HTML 页面中创建一个包含 PDF 的对象,然后使用 print()
方法或使用 java.awt.print.PrinterJob
打印它。请参阅以下示例。
- Print embedded PDF from browser with Javascript, HTML5, AngularJS
- Print a PDF from the browser
- Print PDF directly from JavaScript
- Print JasperPrint directly to printer ? - Java PrinterJob
- Different examples using java.awt.print.PrinterJob
希望对您有所帮助
我正在开发 Spring MVC - Angularjs 应用程序。
我需要打印报告,我选择了 JasperReport 来做。
在继续之前,我想知道是否可以生成报告,然后直接在客户端计算机上设置的默认打印机(可以根据用户更改的打印机)上打印它没有在屏幕上显示它。
我一直在寻找有关此特定需求的答案,但找不到任何答案。
如果有人知道的话....
生成报告并打印的来源:
HashMap<String, Object> params = new HashMap<String, Object>();
params.put("Title", "My Report");
InputStream reportStream = this.getClass().getResourceAsStream(TEMPLATE);
JasperDesign jd = JRXmlLoader.load(reportStream);
JasperReport jr = JasperCompileManager.compileReport(jd);
JasperPrint jp = JasperFillManager.fillReport(jr, params, datasource.getDataSource());
JasperPrintManager.printReport(jp, false);
您可以在 HTML 页面中创建一个包含 PDF 的对象,然后使用 print()
方法或使用 java.awt.print.PrinterJob
打印它。请参阅以下示例。
- Print embedded PDF from browser with Javascript, HTML5, AngularJS
- Print a PDF from the browser
- Print PDF directly from JavaScript
- Print JasperPrint directly to printer ? - Java PrinterJob
- Different examples using java.awt.print.PrinterJob
希望对您有所帮助