在网页上使用webbrowser控件,可以实现无提示框,直接把页面输出到打印机进行打印。事实上,无提示打印之后,常见处理是直接自动关闭网页,但是这好象是个可能完成的任务。使用ExecWB(6,2)命令直接打印的时候,这个命令不阻塞进程,导致页面上,无法知道何时打印完成。
这个问题困扰了我好长时间,原来以为可以用事件来解决,可是WebBrowser并没有打印完成的事件。网上找了好久,也没有找到解决方案。没有办法,只好看MSDN的帮助了。
功夫不负有心人呀,对于ExecWB,执行打印命令的时候,还有一个参数,设置为2时,表示要等待打印结束。有了这个参数,就可以进行打印后的一些处理了(当然包括关闭网页,可以使用window.close关闭,也可以使用ExecWB(45,1)来关闭)。
代码很简单了:
<object id="WebBrowser" width="0" height="0"
classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">
</object>
<input type="button" name="Button" value="打印后关闭"
onClick="document.all.WebBrowser.ExecWB(6,2,2);setTimeout('window.close()',5000);"/>
/***********本人原创,欢迎转载,转载请保留本人信息*************/
作者:wallimn 电邮:
[email protected] 时间:2009-12-11
博客:http://wallimn.iteye.com
网络硬盘:http://wallimn.ys168.com
/***********文章发表请与本人联系,作者保留所有权利*************/