我正在开发一个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

  • 希望这对您有帮助

    09-11 18:36
    查看更多