javascript實現jsp頁面的打印預覽


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:開頭,將【對該區域中所有站點要求服務器驗證】選項勾選去掉)

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM