1. 程式人生 > >JavaScript實現網頁列印,可設定頁首、頁尾、頁邊距

JavaScript實現網頁列印,可設定頁首、頁尾、頁邊距

WebBrowser是IE內建的瀏覽器控制元件,無需使用者下載,即可實現客戶端頁面列印。 

關於這個元件還有其他的用法,列舉如下:

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>