jiafang83 发表于 2013-2-7 18:53:01

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

转载自:http://huaichang.blogbus.com/logs/24518499.html

控制网页打印一般有两套方案,一套是使用免费的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
页: [1]
查看完整版本: javascript控制网页打印与打印设置