以下是我的代码: -
xl/styles.xml
我正在尝试打印jasper页面。使用“JasperPrintManager.printReport(print,false)”时没有任何问题但是当我使用“true”时,我收到以下错误。
Map parameters = new HashMap();
parameters.put("printer", "1010111");
FileInputStream file = new FileInputStream(new File(getServletContext().getRealPath("/Reports/report1.jasper")));
JasperPrint print = JasperFillManager.fillReport(file, parameters, new JRBeanCollectionDataSource(reports));
JasperPrintManager.printReport(print, true);
答案 0 :(得分:0)
重要的是要理解,不是使用
打印的浏览器JasperPrintManager.printReport(print, false)
它实际上是打印到您首选打印机的服务器,因此Web用户将始终在服务器打印机上打印(而不是在他自己的打印机上)。
那是
的原因JasperPrintManager.printReport(print, true)
不起作用,您无法告诉服务器打开PrintDialog
。此调用用于桌面应用程序。
直接在客户端打印机上打印是不可能的(不包括需要在客户端浏览器上安装的浏览器插件的开发)。如果可以使用特殊插件,我们的打印机将整天打印垃圾邮件。
您可以获得的关闭是将报告导出到浏览器,然后自动打开打印对话框。
这是导出为pdf的示例:Automatically open the printer dialog after providing PDF download