JavaScript實現網頁列印,可設定頁首、頁尾、頁邊距
阿新 • • 發佈:2019-01-10
WebBrowser是IE內建的瀏覽器控制元件,無需使用者下載,即可實現客戶端頁面列印。
注意有可能執行時,會出現沒有效果的錯誤,這時原因是可能你的瀏覽器限制了active物件的建立,只要取消限制就好了,取消方法如下:
開啟你的ie瀏覽器internet選項—— 安全—— 自定義級別—— 把對沒有標記為安全的activex控制元件進行初始化和指令碼執行 設定為啟用。
關於這個元件還有其他的用法,列舉如下:
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) 關閉窗體無提示
注意有可能執行時,會出現沒有效果的錯誤,這時原因是可能你的瀏覽器限制了active物件的建立,只要取消限制就好了,取消方法如下:
開啟你的ie瀏覽器internet選項—— 安全—— 自定義級別—— 把對沒有標記為安全的activex控制元件進行初始化和指令碼執行 設定為啟用。
<SCRIPT language=javascript> var HKEY_Root,HKEY_Path,HKEY_Key; HKEY_Root="HKEY_CURRENT_USER"; HKEY_Path="\\Software\\Microsoft\\Internet Explorer\\PageSetup\\"; var head,foot,top,bottom,left,right; //取得頁面列印設定的原引數資料 function PageSetup_temp() { try { var Wsh=new ActiveXObject("WScript.Shell"); HKEY_Key="header"; //取得頁首預設值 head = Wsh.RegRead(HKEY_Root+HKEY_Path+HKEY_Key); HKEY_Key="footer"; //取得頁尾預設值 foot = Wsh.RegRead(HKEY_Root+HKEY_Path+HKEY_Key); HKEY_Key="margin_bottom"; //取得下頁邊距 bottom = Wsh.RegRead(HKEY_Root+HKEY_Path+HKEY_Key); HKEY_Key="margin_left"; //取得左頁邊距 left = Wsh.RegRead(HKEY_Root+HKEY_Path+HKEY_Key); HKEY_Key="margin_right"; //取得右頁邊距 right = Wsh.RegRead(HKEY_Root+HKEY_Path+HKEY_Key); HKEY_Key="margin_top"; //取得上頁邊距 top = Wsh.RegRead(HKEY_Root+HKEY_Path+HKEY_Key); } catch(e){ alert("不允許ActiveX控制元件"); } } //設定網頁列印的頁首頁尾和頁邊距 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,""); HKEY_Key="margin_bottom"; //設定下頁邊距(0) Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"0"); HKEY_Key="margin_left"; //設定左頁邊距(0) Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"0"); HKEY_Key="margin_right"; //設定右頁邊距(0) Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"0"); HKEY_Key="margin_top"; //設定上頁邊距(8) Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"8"); } catch(e){ alert("不允許ActiveX控制元件"); } } //設定網頁列印的頁首頁尾和頁邊距為預設值 function PageSetup_Default() { try { var Wsh=new ActiveXObject("WScript.Shell"); HKEY_Key="header"; HKEY_Key="header"; //還原頁首 Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,head); HKEY_Key="footer"; //還原頁尾 Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,foot); HKEY_Key="margin_bottom"; //還原下頁邊距 Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,bottom); HKEY_Key="margin_left"; //還原左頁邊距 Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,left); HKEY_Key="margin_right"; //還原右頁邊距 Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,right); HKEY_Key="margin_top"; //還原上頁邊距 Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,top); } catch(e){ alert("不允許ActiveX控制元件"); } } function printorder() { PageSetup_temp();//取得預設值 PageSetup_Null();//設定頁面 factory.execwb(6,6);//列印頁面 PageSetup_Default();//還原頁面設定 //factory.execwb(6,6); window.close(); } </script> <OBJECT id=factory height=0 width=0 classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2></OBJECT>