以前做的一个系统(内部小型局域网,在线售票系统),采用的是基于浏览器的打印方式,客户提出在每次打印时都必须选择一次打印机,即在调用window.print()的时候弹出选择打印机的界面,这样很费时间,能不能去掉。
后来在网上找了一些控件,比较有名的就是scriptx这个控件,它可以实现打印控制,包括控制边距,选择页数等。的确很不错,不过很可惜,这个控件是收费的,而且破解版根本就找不到,要不就是已经失效了。估计内部使用了基于联网的方式进行认证。
而且该控件提供的免费版中,方法factory.printing.print(false)基本起不到预期的作用,本来想不弹出选择界面,结果还是不能幸免。于是放弃寻找破解版的念头,寻找其他的控件吧。
后台终于找到可以使用windows自带的webBrowrser进行操作了,因为笔者的需求很简单,不需要控制打印选项这些,就是想直接使用默认的打印机,不弹出打印选择界面而已。OK,以下是实现代码,很简单的(主要是后面有一些限制)//界面上
<object ID="PrintCommandObject" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></object> //javascript var PrintCommand = document.getElementById("PrintCommandObject"); PrintCommandObject.ExecWB(6, 2);//这里使用的是6,2参数,有的说6,6,笔者测试不通过