我在用贾斯珀报告 1.3.1打印报告。我出于开发目的而使用 eclipse 和 tomcat。
在 Eclipse 中,当我运行应用程序时,下面的代码将显示列出的打印机设备和打印按钮。如果我单击打印按钮,则报告将由选定的设备打印。
PrintRequestAttributeSet printRequestAttributeSet = new HashPrintRequestAttributeSet();
printRequestAttributeSet.add(MediaSizeName.ISO_A5);
PrintServiceAttributeSet printServiceAttributeSet = new HashPrintServiceAttributeSet();
JRPrintServiceExporter exporter = new JRPrintServiceExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRPrintServiceExporterParameter.PRINT_REQUEST_ATTRIBUTE_SET, printRequestAttributeSet);
exporter.setParameter(JRPrintServiceExporterParameter.PRINT_SERVICE_ATTRIBUTE_SET, printServiceAttributeSet);
exporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PAGE_DIALOG, Boolean.FALSE);
exporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PRINT_DIALOG, Boolean.TRUE);
exporter.exportReport();
这里我将 jasperPrint 作为我手动构造的参数传递。它工作得很好
我的问题是:
我创建了war文件并粘贴到tomcat中Apache Software Foundation\Tomcat 6.0\webapps
目录并使用启动tomcat服务.msc.
此时,它不显示列出的打印机详细信息,也不打印。
我放了一些记录器,我发现代码挂在exporter.exportReport();
此行代码之后不执行。
请建议我如何使用 jasper 从客户端打印
对我来说似乎是一个访问权限问题。
打印机是网络打印机吗?然后确保您的 Tomcat 服务具有网络访问权限。如果将 Tomcat 作为 Windows 服务启动,则 Tomcat 默认以“本地系统用户”身份运行,并且没有访问网络的权限。这将解释没有列出打印机并且您无法打印。 Eclipse 是由您启动的,因此 eclipse 进程拥有您的权限并且可以访问网络和打印机。
要更改 Tomcat 服务用户,请转至 Windows 服务 --> 右键单击 Tomcat 服务 --> 属性 --> 登录 --> 此帐户 --> 键入有权访问该服务的用户的名称/密码网络上的打印机(也许是你:))。
希望它能有所帮助,即使问题是几个月前的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)