第一种是所见即所得的:
<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>
<p 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>