使用JasperPrintManager.printReport打印jasper报告时出错(print,true);

时间:2015-10-19 07:55:48

标签: java servlets jasper-reports

以下是我的代码: -

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);

1 个答案:

答案 0 :(得分:0)

重要的是要理解,不是使用

打印的浏览器
JasperPrintManager.printReport(print, false)

它实际上是打印到您首选打印机的服务器,因此Web用户将始终在服务器打印机上打印(而不是在他自己的打印机上)。

那是

的原因
JasperPrintManager.printReport(print, true)

不起作用,您无法告诉服务器打开PrintDialog。此调用用于桌面应用程序。

直接在客户端打印机上打印是不可能的(不包括需要在客户端浏览器上安装的浏览器插件的开发)。如果可以使用特殊插件,我们的打印机将整天打印垃圾邮件。

您可以获得的关闭是将报告导出到浏览器,然后自动打开打印对话框。

这是导出为pdf的示例:Automatically open the printer dialog after providing PDF download