经过两天的摸索,在网上搜集了大量的资料,总算是把打印部分搞定了,现在给大家分享一下心得:
在此之前,我先介绍一下Execb用法:
1. 插入引用:
<OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 width=0></OBJECT>
2. 在body里写此类似代码:
<INPUT onclick="document.all.WebBrowser.ExecWB(17,1)" type="button" value="全选" name="Button" ID="Button8">
<INPUT onclick="document.all.WebBrowser.ExecWB(22,1)" type="button" value="刷新" name="Button" ID="Button9">
<INPUT onclick="document.all.WebBrowser.ExecWB(22,1)" type="button" value="刷新" name="Button" ID="Button9">
ExeCB常用参数说明:
WebBrowser.ExecWB(1,1) 打开
Web.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口
Web.ExecWB(4,1) 保存网页
Web.ExecWB(6,1) 打印
Web.ExecWB(7,1) 打印预览
Web.ExecWB(8,1) 打印页面设置
Web.ExecWB(10,1) 查看页面属性
Web.ExecWB(15,1) 好像是撤销,有待确认
Web.ExecWB(17,1) 全选
Web.ExecWB(22,1) 刷新
Web.ExecWB(45,1) 关闭窗体无提示
好了,现在开始:
情况一:针对页面上少量元素不打印(不预览)的情况的解决办法是使用style,具体如下:
定义如下style:
@media print {
.notprint {
display:none;
}
}
@media screen {
.notprint {
display:inline;
cursor:hand;
}
}
.notprint {
display:none;
}
}
@media screen {
.notprint {
display:inline;
cursor:hand;
}
}
所有需要显示但不需要打印(预览)的元素都加上: class='notprint'
情况二:针对只打印(预览)页面上某个区块内容的情况,其解决办法是:定义一个专用的预览页面review.htm,其内容如下:
<head>
<meta HTTP-EQUIV="Content-Type" content="text/html; charset=gb2312">
<OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 width=0></OBJECT>
</head>
<style>
@media print {
.notprint {
display:none;
}
}
@media screen {
.notprint {
display:inline;
cursor:hand;
}
}
</style>
<body>
</body>
<script>
function window.onload(){
var printArea=opener.document.all.printArea;
window.document.body.innerHTML=printArea.innerHTML;
window.focus();
window.document.all.WebBrowser.ExecWB(7,1);
window.close();
}
</script>
<meta HTTP-EQUIV="Content-Type" content="text/html; charset=gb2312">
<OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 width=0></OBJECT>
</head>
<style>
@media print {
.notprint {
display:none;
}
}
@media screen {
.notprint {
display:inline;
cursor:hand;
}
}
</style>
<body>
</body>
<script>
function window.onload(){
var printArea=opener.document.all.printArea;
window.document.body.innerHTML=printArea.innerHTML;
window.focus();
window.document.all.WebBrowser.ExecWB(7,1);
window.close();
}
</script>
需要预览的时候只要这样调用:
window.open("review.htm")
说明:要打印的区域要用<div id=printArea>和</div>围起来。