JS打印——第三方控件打印
LODOP
一个很好的打印控件,可以是实现纸张设置、横打竖打、打印预览、打印维护多种功能。官网的示例非常详细、能很好支持多种浏览器的打印。
在使用中遇到的唯一的缺点是它可能会更改原有内面的CSS样式,
特别是引用的外部CSS样式是无效的,必须要把css样式文件(<style></style>及其内的内容)添加在需要打印内容的内部。
WebBrowser控件
使用前,首先我们需要在页面中嵌入WebBrowser控件,不过由于该控件是IE浏览器自带的,支持浏览器默认安全设置,可以直接在IE浏览器中使用(chrome和firefox测试中不可用),只是有的时候需要添加对ActiveX控件的支持。
设置方法为:进入浏览器 Internet选项-》安全-》Internet-》自定义级别-》设置如下两项:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>中国绿色厨房计划</title> <script language="javascript"> function printsetup() { // 打印页面设置 wb.execwb(8, 1); } function printpreview() { // 打印页面预览 wb.execwb(7, 1); } function printit() { if (confirm('确定打印吗?')) { wb.ExecWB(6, 1) //wb.execwb(1,1)//打开 //wb.ExecWB(2,1);//关闭现在所有的IE窗口,并打开一个新窗口 //wb.ExecWB(4,1)//;保存网页 //wb.ExecWB(6,1)//打印 //wb.ExecWB(7,1)//打印预览 //wb.ExecWB(8,1)//打印页面设置 //wb.ExecWB(10,1)//查看页面属性 //wb.ExecWB(15,1)//好像是撤销,有待确认 //wb.ExecWB(17,1)//全选 //wb.ExecWB(22,1)//刷新 //wb.ExecWB(45,1)//关闭窗体无提示 } } </script> </head> <body> <div style="width:640px;height:20px;margin:100px auto 0 auto;font-size:12px;text-align:right;"> <input value="打印" type="button" onclick="javascript:window.print()" /> <OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height="0" id="wb" name="wb" width="0"> </OBJECT> <input type=button name=button_print style="display:none;" value="打印本单据" onclick="javascript:printit()"> <input type=button name=button_setup value="打印页面设置" onclick="javascript:printsetup();"> <input type=button name=button_show value="打印预览" onclick="javascript:printpreview();"> <input type=button name=button_fh value="关闭" onclick="javascript:window.close();"> </div> <div style="width:640px;height:624px;margin:20px auto;"> 这是需要打印的内容 </div> </body> </html>