杰表技术论坛 's Archiver

逍遥游518 发表于 2013-7-10 10:27

能否判断所连接的打印机是真实打印机还是虚拟打印机?

希望在打印前判断一下是真实打印机还是虚拟打印机,防止有些需要打印份数限制的文档被打印到虚拟打印机后行形成电子文档,导致无法控制打印份数,请问这个控件是否有这方面的功能?

admin 发表于 2013-7-10 17:29

这个功能,正在研究!
请关注本贴,有结果会在此发布,谢谢!

admin 发表于 2013-7-11 13:13

你可以使用以下代码,来判断是否是虚似打印机:
function isVirtualPrinter(){     
         var port = jatoolsPrinter.getPrinterInfo('联想 laser jet').port;     // 通过jatoolsPrinter取得打印机的port     
         return port.match(/(usb|lpt|com)/i);     // 一般不是虚拟打印机,都直接输出到 usb,lpt,com等物理端口
}


原理是取得打印机端口信息,一般虚拟打印机,不用物理端口,用一些非常怪的端口地址,下面是常用的虚拟打印机端口:
pdffactory : FPP3
pdfcreator: pdfcmon
xps writer: XPSPort

示例代码文件下载:
[attach]633[/attach]

逍遥游518 发表于 2013-7-11 13:50

判断端口信息不可靠

虚拟打印机的端口可以设置为LPT3或其他没有用过的端口,这样通过匹配端口名称不可靠,还是可以用虚拟打印机来形成电子文档

admin 发表于 2013-7-11 14:04

windows它是不区别,是否是虚拟打印机的,所以,只能用这种笨办法,如果你知道,有相关的api,也可以告诉我们。

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.