JAVASCRIPT实现网页打印,可设置页眉、页脚、页边距

WebBrowser是IE内置的浏览器控件,无需用户下载,即可实现客户端页面打印。

关于这个组件还有其他的用法,列举如下:
代码 :

//个功能的含义如下------
1.WebBrowser.ExecWB(1,1) 打开       
2.Web.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口       
3.Web.ExecWB(4,1) 保存网页       
4.Web.ExecWB(6,1) 打印       
5.Web.ExecWB(7,1) 打印预览       
6.Web.ExecWB(8,1) 打印页面设置       
7.Web.ExecWB(10,1) 查看页面属性       
8.Web.ExecWB(15,1) 好像是撤销,有待确认       
9.Web.ExecWB(17,1) 全选       
10.Web.ExecWB(22,1) 刷新       
11.Web.ExecWB(45,1) 关闭窗体无提示    


注意有可能执行时,会出现没有效果的错误,这时原因是可能你的浏览器限制了active对象的创建,只要取消限制就好了,取消方法如下:

打开你的ie浏览器internet选项—— 安全—— 自定义级别—— 把对没有标记为安全的activex控件进行初始化和脚本运行 设置为启用。


代码 :

1.<SCRIPT language=javascript>      
2.var HKEY_Root,HKEY_Path,HKEY_Key;       
3.HKEY_Root="HKEY_CURRENT_USER";       
4.HKEY_Path="\\Software\\Microsoft\\Internet Explorer\\PageSetup\\";       
5.var head,foot,top,bottom,left,right;      
6.     
7.//取得页面打印设置的原参数数据      
8.function PageSetup_temp() {      
9.    try       
10. {       
11.  var Wsh=new ActiveXObject("WScript.Shell");       
12.  HKEY_Key="header";       
13.//取得页眉默认值      
14.  head = Wsh.RegRead(HKEY_Root+HKEY_Path+HKEY_Key);       
15.  HKEY_Key="footer";       
16.//取得页脚默认值      
17.  foot = Wsh.RegRead(HKEY_Root+HKEY_Path+HKEY_Key);       
18.  HKEY_Key="margin_bottom";       
19.//取得下页边距      
20.  bottom = Wsh.RegRead(HKEY_Root+HKEY_Path+HKEY_Key);       
21.  HKEY_Key="margin_left";       
22.//取得左页边距      
23.  left = Wsh.RegRead(HKEY_Root+HKEY_Path+HKEY_Key);       
24.  HKEY_Key="margin_right";       
25.//取得右页边距      
26.  right = Wsh.RegRead(HKEY_Root+HKEY_Path+HKEY_Key);       
27.  HKEY_Key="margin_top";       
28.//取得上页边距      
29.  top = Wsh.RegRead(HKEY_Root+HKEY_Path+HKEY_Key);       
30. }       
31. catch(e){      
32.    alert("不允许ActiveX控件");      
33. }       
34.}      
35.     
36.//设置网页打印的页眉页脚和页边距      
37.function PageSetup_Null()       
38.{       
39. try       
40. {       
41.  var Wsh=new ActiveXObject("WScript.Shell");       
42.  HKEY_Key="header";       
43.//设置页眉(为空)      
44.  Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");       
45.  HKEY_Key="footer";       
46.//设置页脚(为空)      
47.  Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");       
48.  HKEY_Key="margin_bottom";       
49.//设置下页边距(0)      
50.  Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"0");       
51.  HKEY_Key="margin_left";       
52.//设置左页边距(0)      
53.  Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"0");       
54.  HKEY_Key="margin_right";       
55.//设置右页边距(0)      
56.  Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"0");       
57.  HKEY_Key="margin_top";       
58.//设置上页边距(8)      
59.  Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"8");       
60. }       
61. catch(e){      
62.    alert("不允许ActiveX控件");      
63. }       
64.}       
65.//设置网页打印的页眉页脚和页边距为默认值       
66.function  PageSetup_Default()       
67.{         
68. try       
69. {       
70.  var Wsh=new ActiveXObject("WScript.Shell");       
71.  HKEY_Key="header";       
72.  HKEY_Key="header";       
73.//还原页眉      
74.  Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,head);       
75.  HKEY_Key="footer";       
76.//还原页脚      
77.  Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,foot);       
78.  HKEY_Key="margin_bottom";       
79.//还原下页边距      
80.  Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,bottom);       
81.  HKEY_Key="margin_left";       
82.//还原左页边距      
83.  Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,left);       
84.  HKEY_Key="margin_right";       
85.//还原右页边距      
86.  Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,right);       
87.  HKEY_Key="margin_top";       
88.//还原上页边距      
89.  Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,top);       
90. }      
91. catch(e){      
92.    alert("不允许ActiveX控件");      
93. }      
94.}      
95.     
96.function printorder()      
97.{      
98.        PageSetup_temp();//取得默认值      
99.        PageSetup_Null();//设置页面      
100.        factory.execwb(6,6);//打印页面      
101.        PageSetup_Default();//还原页面设置      
102.        //factory.execwb(6,6);      
103.        window.close();      
104.}      
105.     
106.</script>      
107.<OBJECT id=factory height=0 width=0 classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2></OBJECT>   





实验代码(自己书写的测试代码)


<html>
<head><title>test!</title>

<SCRIPT language=javascript>      
var HKEY_Root,HKEY_Path,HKEY_Key;       
HKEY_Root="HKEY_CURRENT_USER";       
HKEY_Path="\\Software\\Microsoft\\Internet Explorer\\PageSetup\\";       
var head,foot,top,bottom,left,right;      
    
//取得页面打印设置的原参数数据      
function PageSetup_temp() {      
  try       
{       
 var Wsh=new ActiveXObject("WScript.Shell");       
 HKEY_Key="header";       
//取得页眉默认值      
 head = Wsh.RegRead(HKEY_Root+HKEY_Path+HKEY_Key);       
 HKEY_Key="footer";       
//取得页脚默认值      
foot = Wsh.RegRead(HKEY_Root+HKEY_Path+HKEY_Key);       
 HKEY_Key="margin_bottom";       
//取得下页边距      
 bottom = Wsh.RegRead(HKEY_Root+HKEY_Path+HKEY_Key);       
 HKEY_Key="margin_left";       
//取得左页边距      
 left = Wsh.RegRead(HKEY_Root+HKEY_Path+HKEY_Key);       
 HKEY_Key="margin_right";       
//取得右页边距      
right = Wsh.RegRead(HKEY_Root+HKEY_Path+HKEY_Key);       
 HKEY_Key="margin_top";       
//取得上页边距      
 top = Wsh.RegRead(HKEY_Root+HKEY_Path+HKEY_Key);       
}       
catch(e){      
   alert("不允许ActiveX控件");      
}       
}      
    
//设置网页打印的页眉页脚和页边距      
function PageSetup_Null()       
{       
try       
{       
 var Wsh=new ActiveXObject("WScript.Shell");       
 HKEY_Key="header";       
//设置页眉(为空)      
Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");       
 HKEY_Key="footer";       
//设置页脚(为空)      
 Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");       
 HKEY_Key="margin_bottom";       
//设置下页边距(0)      
 Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"0");       
 HKEY_Key="margin_left";       
//设置左页边距(0)      
 Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"0");       
 HKEY_Key="margin_right";       
//设置右页边距(0)      
 Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"0");       
 HKEY_Key="margin_top";       
//设置上页边距(8)      
 Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"8");       
}       
catch(e){      
   alert("不允许ActiveX控件");      
}       
}       
//设置网页打印的页眉页脚和页边距为默认值       
function  PageSetup_Default()       
{         
try       
{       
 var Wsh=new ActiveXObject("WScript.Shell");       
 HKEY_Key="header";       
 HKEY_Key="header";       
//还原页眉      
 Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,head);       
 HKEY_Key="footer";       
//还原页脚      
Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,foot);       
 HKEY_Key="margin_bottom";       
//还原下页边距      
 Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,bottom);       
 HKEY_Key="margin_left";       
//还原左页边距      
Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,left);       
HKEY_Key="margin_right";       
//还原右页边距      
 Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,right);       
 HKEY_Key="margin_top";       
//还原上页边距      
 Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,top);       
}      
catch(e){      
  alert("不允许ActiveX控件");      
}      
}      
   
function printorder()      
{      
       PageSetup_temp();//取得默认值      
       PageSetup_Null();//设置页面   
       factory.execwb(6,6);//打印页面      
       PageSetup_Default();//还原页面设置      
       window.close();      
}      
    
function printview()      
{      
      // PageSetup_temp();//取得默认值      
       // PageSetup_Null();//设置页面   
       factory.execwb(7,1); //打印预览    
       PageSetup_Default();//还原页面设置          
       window.close();      
}      

function printpage()      
{      
       PageSetup_temp();//取得默认值      
       PageSetup_Null();//设置页面   
      factory.ExecWB(10,1);   查看页面属性   
       PageSetup_Default();//还原页面设置           
       window.close();      
}      
</script>      
<OBJECT id=factory height=0 width=0 classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2></OBJECT>

</head>
<body>
<h1>测试信息</h1>
<br/>
<input type="button" value="查看页面属性"  οnclick="printpage()"/>
<input type="button" value="打印预览"  οnclick="printview()"/>
<input type="button" value="打印"  οnclick="printorder()"/>
</body>
</html>  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值