xls 发表于 2013-1-29 09:28:39

javascript打印

  web项目中可能会经常用到javascript打印,我首先尝试用JavaScript调用WebBrower进行打印,具体实现方法网上有很多,这里简单介绍一下:     
首先在页面body中加入:

显示代码打印1 <object id=wb 
        height=0 
        width=0     
        classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2     
        name=wb> 
</object>
 
 
2、下面就是通过JavaScript调用上面Object的方法进行打印了:

显示代码打印01 <mce:script language="javascript"><!--     
    function printsetup() 
    {  
      // 打印页面设置  
      wb.execwb(8,1);  
    }  
    function printpreview() 
    {  
      // 打印页面预览  
       wb.execwb(7,1);    
     }  
    function printit()  
    {  
      if (confirm(’确定打印吗?’))  
       {  
          wb.execwb(6,6)  
       }  
    }  
// --></mce:script>
 
 
3、去除打印时的页眉和页脚

显示代码打印01 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){}     
 }

     但此处会出于问题,由于浏览器本身有安全限制,上面的操作需要浏览做很多安全方面的设置,这但使用该功能的用户来说存在安全隐患,所以该种打印解决方案非最佳方案。我曾实验过,对于安全限制稍低的IE6来说不会出现什么问题,但对于安全限制性更高的IE7来说,需要对浏览器做几项设置后才能打印。所以这个方案不推荐。
      那么另外的打印方案就是最简单的,那么最简单意味着很多功能也受限,比如说打印预览就很难做到尽善尽美了。简单介绍一下吧:
      这种方案就不需要在body中加入Object了,只需在调用下面的JS方法即可:

显示代码打印1 function printPage(){ 
   if(confirm(’确定打印吗?’)) {     
      window.print(); 
    }     
 }
 
 
怎样去掉页眉页脚呢?
      方法一:在<head>中加入:

显示代码打印01 <style> 
  @media print 
  {    
   .Noprint{DISPLAY:none;}    
   .PageNext{PAGE-BREAK-AFTER:always}    
  }  
 </style> 
        在不需要打印的地方:如<table class="Noprint">不打印的部分</table> 
   
       方法二:在<head>中加入: 
 //指定img类型元素不打印 
 @media print{ 
 img {display:none} 
 }
 
页: [1]
查看完整版本: javascript打印