博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

ASP.NET 页面打印与预览

Posted on 2009-06-09 13:06  linFen  阅读(13756)  评论(0编辑  收藏  举报

第一种是所见即所得的:


<html>
<head>
<title> ASP.NET 打印 - 所见即所得 </title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language="javascript">
function preview()
{
 bdhtml
=window.document.body.innerHTML;
 sprnstr
="<!--startprint-->";
 eprnstr
="<!--endprint-->";
 prnhtml
=bdhtml.substr(bdhtml.indexOf(sprnstr)+17);
 prnhtml
=prnhtml.substring(0,prnhtml.indexOf(eprnstr));
 window.document.body.innerHTML
=prnhtml;
 window.print();
 
//prnform.htext.value=prnhtml;
 //prnform.submit();
 //alert(prnhtml);
}

</script>
</head>
<body bgcolor="#FFFFFF" text="#000000">
辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣
<center>本部分以上不被打印</center>
<!--startprint-->
<table width="84%" align="center" bgcolor="#0000FF" cellpadding="2" cellspacing="1">
  
<tr bgcolor="#6699FF">
    
<td>
      
<div align="center">标题一</div>
    
</td>
    
<td>
      
<div align="center">标题二</div>
    
</td>
    
<td>
      
<div align="center">标题三</div>
    
</td>
    
<td>
      
<div align="center">标题四</div>
    
</td>
    
<td>
      
<div align="center">标题五</div>
    
</td>
  
</tr>
  
<tr bgcolor="#6699FF">
    
<td> </td>
    
<td> </td>
    
<td> </td>
    
<td> </td>
    
<td> </td>
  
</tr>
</table>
<!--endprint-->
<center>本部分以下不被打印</center>
辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣辣
<div align="center">
  
<input type="button" name="print" value="预览并打印" onclick="preview()">
</div>
<style>
@media print 
{
   .Noprn {display
:none;}

}
</style>
<class="Noprn">不打印</p>
<table id=datagrid><tr><td>打印</td></tr></table>
<input class=Noprn type=button onclick="window.print()" value="print">
</body>
</html>

 

第二种是对页面样式进行解析后的

 


function doPage()
{
    layLoading.style.display 
= "none";//同上
}

 
//设置网页打印的页眉页脚为空 
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页码,&p/&P"); 
  HKEY_Key
="footer"
  Wsh.RegWrite(HKEY_Root
+HKEY_Path+HKEY_Key,"&u&b&d"); 
 }
 
 
catch(e){} 
}
 
 
/*
 *预览函数 
 *controlsList  要隐藏的控件
 *doType 页面页脚类型  0 设置为空,1 设置为默认
 
*/

function printpr(controlsList,doType)   
{
 
if(doType == '0'){
  PageSetup_Null();
 }

 
else{
  PageSetup_Default();
 }

 
var control = controlsList.split(","); 
 
for(i = 0;i < control.length;i++){//隐藏控件
  document.getElementById(control[i]).style.display = "none";
 }

 
var OLECMDID = 7;
 
var PROMPT = 1
var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
 document.body.insertAdjacentHTML(
'beforeEnd', WebBrowser); 
 WebBrowser1.ExecWB(OLECMDID, PROMPT);
 WebBrowser1.outerHTML 
= "";
 
for(i = 0;i < control.length;i++){//打印之后将该元素显示出来
  document.getElementById(control[i]).style.display = "";
 }

 window.location.reload();
//刷新窗口
}


/*
 *预览函数 
 *controlsList  要隐藏的控件(用逗号连接)
 *doType 页面页脚类型  0 设置为空,1 设置为默认
 
*/

function printTure(controlsList,doType)   //打印函数
{    
 
if(doType == '0'){
  PageSetup_Null();
 }

 
else{
  PageSetup_Default();
 }

 
var control = controlsList.split(",");
 
for(i=0;i<control.length;i++){//隐藏控件
  document.getElementById(control[i]).style.display = "none";
 }

    window.print();
 
for(i=0;i<control.length;i++){
  document.getElementById(control[i]).style.display 
= "";
 }

    window.location.reload();
}

 


<div style="text-align: right">
  
<input type="button" name="btn" value="打印" onclick="printTure('btn,show','0')" />
  
<input type="button" name="show" value="预览" onclick="printpr('btn,show','0')" />
</div>