您的位置:首页 > 其它

【Vegas原创】WEB打印部分页面

2006-10-13 13:02 351 查看
经过两天的摸索,在网上搜集了大量的资料,总算是把打印部分搞定了,现在给大家分享一下心得:

在此之前,我先介绍一下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">
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;
}
}

所有需要显示但不需要打印(预览)的元素都加上: 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>

需要预览的时候只要这样调用:
window.open("review.htm")
说明:要打印的区域要用<div id=printArea>和</div>围起来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: