1、加載WebBrowser打印預覽控件
<OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height="0" id="wb" name="wb" width="3"></OBJECT> <input type=button value=打印預覽 onclick=document.all.WebBrowser.ExecWB(7,1)>
--------------------------------------WebBrowser控件 --------------------------------------------- <OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 width=0 VIEWASTEXT></OBJECT> <input type=button value=打開 onclick=document.all.WebBrowser.ExecWB(1,1)> <input type=button value=另存為 onclick=document.all.WebBrowser.ExecWB(4,1)> <input type=button value=全選 onclick=document.all.WebBrowser.ExecWB(17,1)> <input type=button value=屬性 onclick=document.all.WebBrowser.ExecWB(10,1)> <input type=button value=關閉窗口 onclick=document.all.WebBrowser.ExecWB(45,1)> <input type=button value=打印 onclick=document.all.WebBrowser.ExecWB(6,1)> <input type=button value=直接打印 onclick=document.all.WebBrowser.ExecWB(6,6)> <input type=button value=頁面設置 onclick=document.all.WebBrowser.ExecWB(8,1)> <input type=button value=打印預覽 onclick=document.all.WebBrowser.ExecWB(7,1)>
或者用超鏈接添加自定義函數
<a href="javaScript:printpreview();" >◆ 打印預覽 </a>
自定義函數主要實現打印預覽去掉頁眉頁腳
<script type="text/javascript"> //設置網頁打印的頁眉頁腳為空 var HKEY_Root,HKEY_Path,HKEY_Key; HKEY_Root="HKEY_CURRENT_USER"; HKEY_Path="//Software//Microsoft//Internet Explorer//PageSetup//"; 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 printpreview(){ PageSetup_Null(); // 打印頁面預覽 wb.execwb(7,1); }; </script>
2.設置不打印的元素:設置樣式,並添加到不需要展示的元素(class="noprint")
<style media="print" type="text/css"> .Noprint{display:none;} .PageNext{page-break-after: always;} </style>
3.【遇到問題】當前網頁是通過window.parent.openWindowCanClose(url,title,width,height) ;方式打開的窗口,打印的區域則包括了父窗口,而並不是我們當前設置的子窗口。
我猜想web打印預覽方法是基於window對象的,因此想要只是打印子窗口那么必須是另打開一個新網頁。
window.open(url,title,width,height,"_blank");
4.【遇到問題】當在本地測試該功能時可以正常預覽,但是換在服務器上測試該功能時發現提示【 Internet Explorer 已經阻止此站點用不安全方式使用 ActiveX 控件】
這個是由於瀏覽器的安全級別設置引發的,最直接的方法就是【添加信任站點】
設置方式:【工具】-【Internet選項】-【受信任的站點】-【站點】-填入網址(若這個網站不是以https:開頭,將【對該區域中所有站點要求服務器驗證】選項勾選去掉)