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

2年前 (2022) 程序员胖胖胖虎阿
148 0 0

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

在此之前,我先介绍一下Execb用法:

1. 插入引用:

【Vegas原创】WEB打印部分页面<OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 width=0></OBJECT> 

2. 在body里写此类似代码:

【Vegas原创】WEB打印部分页面<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>围起来。

版权声明:程序员胖胖胖虎阿 发表于 2022年10月2日 上午4:40。
转载请注明:【Vegas原创】WEB打印部分页面 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...