上周遇到了一个问题,是关于条码打印的。我们的OA系统是几年前开发的,当时用到了条码打印,解决方案是在客户端用JS脚本直接调用文件系统组件向并口LPT1发送ZPL指令。
之所以这么处理的好处是,客户端无需安装打印机驱动,只要接好并口数据线即可。但随着时间的推移,计算机的更新换代,新机型越来越不待见LPT并口了。直到上周,某办公室更新了新的计算机主机,已然没有并口了,结果条码打印就不起作用了。于是作为系统技术支持的我过去诊断了一番,发现情况的确不容乐观。主机根本没有并口,而且外接一个独立的并口卡似乎不符合勤俭节约的优良传统,当然修改JS代码也不是很好的方案,由于web权限的限制,对本地设备的访问是不安全的,如何检测设备也是个问题,最后那就看看能不能虚拟一个并口来用了。
经过一番查找,终于发现,解决方案就有现成的,而且也用不到第三方软件,windows自身就能搞定。原理很简单就是把网络打印机接口映射成本地LPT端口即可。操作方法:1、安装打印机的USB驱动,并确保打印机正常工作;2、将打印机设置为共享,共享名要用英文;3、利用net use指令把网络打印机映射到本地LPT1端口。
假设本机的IP是192.168.1.100,打印机共享名是PRINTER,那么具体命令行是这样:
net use LPT1 \\192.168.1.100\PRINTER /PERSISTENT:YES
经过如上设置,这个虚拟并口的映射会始终存在,除非重装系统或者用指令删除,在没有变动OA系统代码的情况下,这个特殊问题最终得以解决。