问题描述:后台系统的多单单据需要各自对应不同的打印机,并且同时打印(LQ-690K 2台,hp激光打印2台)。
一开始的功能是直接在各个单据的页面上直接放置打印按钮来打印,最终提出的需求是为了节约时间,提高打印速度,要多台打印机同时连接电脑,每台对应一种单据,同时打印。
后台是基于j2ee的,web打印方式也就那几种,一是用js,二就是用控件。初始的打印按钮使用window.print()来打印,已经满足不了要求,需要有新的方式来实现.中间走了许多弯路,现在将过程中一些思路整理了下:
1、想控制多台打印机,只好在客户端电脑放置一个java程序,使用java的打印api,从服务器获取html内容输出到打印机,但是查看java打印api的使用,很多都局限于对2d图形的打印(查了很多资料实现不了对html,pdf的直接打印)。
2、中间试图用js存储html到本地,转成pdf打印,最后发现对于分页,打印都是有问题。
时间有限,最后回来最初的选择上来,js打印基本是不用指望了,那就控件了,一开始没有使用控件是打个打印觉得没必要买控件(大部分功能完善点的都要收费吧)。不过这时候有需要只好找一个,杰表看了貌似有点贵,最后选Lodop来,暂时是会输出一行水印。
最终的思路就是调用控件针对不同的URL,分别指定到指定序号的打印机打印。考虑到如果有多个地方使用,所以序号的指定放到