gpt4 book ai didi

java - Java Web 应用程序上的打印服务

转载 作者:行者123 更新时间:2023-11-29 08:18:57 24 4
gpt4 key购买 nike

我有一个企业 Java Web 应用程序,所有业务都是从客户端-服务器应用程序迁移过来的。所以我需要调整所有要求,包括在每个客户端上打印(使用点阵/纯文本)。

对分离客户端的客户端打印要求是他们必须在流程完成后立即获得报告,比如说打印一些系统信息。在客户端服务器上打印很容易,但是当我迁移到网络应用程序时,我们使用了嵌入到应用程序中的服务器/小程序服务。所以当客户端打开浏览器时,小程序将被初始化。

可以用,但是问题太多。有时 applet 突然关闭而客户端没有采取任何操作,因此 applet 将自动无法检查数据库中的排队报告。这个案例有什么建议吗?

我使用 Spring Framework 作为业务层。

最佳答案

几年前我遇到过同样的问题。

我就是这样做的。

由于我的处理是在服务器上进行的,所以我知道交易何时完成。所以我所做的就是直接从服务器发送打印请求。客户端打印机是在服务器中配置的,因为它是在 LAN 中使用的,所以可以很容易地访问到它。这样我就解决了小程序的所有问题,权衡是他们只能在办公室打印,但在我的情况下很好,不一定适用于你,试一试。

更新

就我而言,全国各地的不同部门都需要打印品。

每个部门都有一台特定的、唯一的打印机来完成该任务。所以我所做的就是将该打印机安装在服务器文件系统中(在 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 。它比看起来简单得多。

关于java - Java Web 应用程序上的打印服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1899225/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com