六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 146|回复: 0

JavaScript控制网页打印与打印设置

[复制链接]

升级  8%

14

主题

14

主题

14

主题

秀才

Rank: 2

积分
62
 楼主| 发表于 2013-2-7 20:58:38 | 显示全部楼层 |阅读模式
控制网页打印一般有两套方案,一套是使用免费的ie默认打印,另一种是使用第三方开发的打印组件,下面介绍的是使用ie默认打印实现通过JavaScript代码控制打印。直接上代码,里面有解释:
第一段代码,使用css控制打印范围,默认的是打印所有网页的内容,如果一些内容不想被打印,可以通过加一个class=Noprint来实现
<style   media=print>      
  .Noprint{display:none;}<!--用本样式在打印时隐藏非打印项目-->      
  .PageNext{page-break-after:   always;}<!--控制分页-->      
</style>

第二段代码,设置页眉页脚使用到的JavaScript代码,这段代码不是必须的。这个是通过修改注册表里关于ie打印的参数,实现的修改页眉页脚的功能。可以在页面放一个按钮来调用函数,也可以使页面加载时就调用一下PageSetup_Default() 函数。
<script     language="JavaScript">        
  var   HKEY_Root,HKEY_Path,HKEY_Key;    
  HKEY_Root="HKEY_CURRENT_USER";    
  HKEY_Path="
\\Software\\Microsoft\\Internet Explorer\\PageSetup\\";    
  //设置网页打印的页眉页脚为空    
  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,"");    
    }    
    catch(e){}    
  }    
  //设置网页打印的页眉页脚为默认值    
  function     PageSetup_Default()    
  {        
    try    
    {    
      var   Wsh=new   ActiveXObject("WScript.Shell");    
      HKEY_Key="header";    
      Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"&w&b页00码,&p/&P");    
      HKEY_Key="footer";    
      Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"&u&b&d");    
    }    
    catch(e){}    
  }    
  </script>
    
页眉页脚设置里面的参数详解:http://huaichang.blogbus.com/logs/24518601.html
第三段代码,打印预览和页面设置的代码。把他放进页面适当的位置,就可以实现通过点击打印预览按钮实现打印预览功能了。下面代码里的清空页码和恢复页面只是一个辅助选项,不是必须要添加的,可以根据实际情况来决定有没有必要保留。
<input   type="button"   value="清空页码"   onclick=PageSetup_Null()>
  <input   type="button"   value="恢复页码"   onclick=PageSetup_Default()>
 <input   type=button   value=页面设置   onclick=document.all.WebBrowser.ExecWB(8,1)>  
  <input   type=button   value=打印预览   onclick=document.all.WebBrowser.ExecWB(7,1) />

另外附上一些与之类似的代码,都是ie自带的一些功能。
因为代码比较多,所以放一个新的页面里面了:http://huaichang.blogbus.com/logs/24519366.html
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表