几年前我有同样的问题。
这就是我所做的。
由于我的处理是在服务器上进行的,所以我知道交易何时完成。所以我做的是直接从服务器发送打印请求。客户端打印机在服务器中进行配置,并且由于它在局域网中使用,因此可以轻松访问该打印机。这样我就完成了与小应用程序有关的所有问题,权衡是他们只能在办公室打印,但在我的情况下很好,不一定适用于您,请尝试一下。
UPDATE
在我的情况下,需要沿国家不同部门的打印。
每个部门都有针对该任务的特定唯一打印机。因此,我所做的是将该打印机安装在服务器文件系统中(在Unix中是/ Volumes/printers/EPSON-12345,在Windows中是x:\ printers \ EPSON-12345)当用户在webapp中完成事务后,我启动在服务器中打印请求。 Java根本没有任何问题打印到本地打印机,并且由于映射打印机被视为本地(即使它是远程打印机),您不需要进一步的授权或任何特殊的东西。
因为我知道具体的打印机是如何映射的,而且我知道是哪种交易,所以我知道在哪里打印。
最后,我使用一个属性文件来允许打印机随时更改和/或添加更多的打印机。
我不太记得细节,但它是在服务器中是这样的:
ResourceBundle bundle = ResourceBundle.getBundle("printers");
String serviceName = bundle.getString("MEXICO.CITY.PRINTER");
PrintService service = PrintService.find(serviceName);
service.print(// document and etc);
但是,这是近4年。以前所以我不记得确切的细节,但我的程序仍在运行:)
你可以阅读更多关于java中的打印服务here。它比它的样子简单得多。
+.1创意解决方案 – Pierreten 2009-12-14 06:37:42
@Pierreten:那是一个符号+1吗? :-o是的..必要性是所有发明的母亲(因此是创造力)。 – OscarRyz 2009-12-14 06:52:00
嗯案件几乎相同,但如何配置服务器的客户端打印机并发送打印请求到客户端? – 2009-12-14 06:58:32