// 
<style media="print" type="text/css"> 
.NoPrint { display:none } 
.PageNext { page-break-after: always } 
</style> 
<script language=javascript> 
//利用注測表進行面頁設置 
var hkey = "HKEY_CURRENT_USER\\Software\\Microsoft\\Internet 
Explorer\\PageSetup\\"; 
var RegWsh; //注冊表 
function pSetup(s1,s2,b1,b2,b3,b4){ //打印頁面設置 
//本函數無法選擇打印機、設置默認紙張大小,請在window的打印設置中處理 
if(!RegWsh) RegWsh = new ActiveXObject('WScript.Shell'); 
try{ 
RegWsh.RegWrite(hkey+'header', s1); //頁眉,默認為:&w&b頁碼,&p/&P 
RegWsh.RegWrite(hkey+'footer', s2); //頁腳,默認為:&u&b&d 
RegWsh.RegWrite(hkey+'margin_left', b1); //左邊距,默認為:0.75 
RegWsh.RegWrite(hkey+'margin_right', b2); //右邊距,默認為:0.75 
RegWsh.RegWrite(hkey+'margin_top', b3); //上邊距,默認為:0.75 
RegWsh.RegWrite(hkey+'margin_bottom', b4); //下邊距,默認為:0.75 
}catch(e){alert('頁面設置失敗。');} 
}
//打印、打印預覽、頁面設置對話框 
document.write('<object id="WebBrowser" width=0 height=0 classid= 
"clsid:8856F961-340A-11D0-A96B-00C04FD705A2"></object>'); 
function printSetup() { document.all.WebBrowser.execwb(8,1); } //打印頁面設置(對話框方式) 
function printPreview(){ document.all.WebBrowser.execwb(7,1); } //打印頁面預覽 
function printIt() { document.all.WebBrowser.execwb(6,6); } //打印 
</script> 
說明: 
(1)、先在網頁的head標簽中加入以上代碼,這段代碼由兩部分組成:樣式表、javascript代碼。 
(2)、要打印的網頁內容全部寫在body標簽中。 
(3)、如果網頁中的某些內容不想被打印出來,可以使用NoPrint樣式。如: 
<body> 
<div class=NoPrint>不想被打印的內容</div> 
欲打印的網頁內容.... 
</body> 
(4)、分頁使用PageNext樣式,比如在網頁中插入 <div class=PageNext></div> 
(5)、函數說明 
·調用printSetup()函數,顯示頁面設置窗口 
·調用printPreview()函數,打印預覽 
·調用printIt()函數,打印 
·調用pSetup(s1,s2,b1,b2,b3,b4)函數,頁面設置。s1頁眉,s2頁腳,b1、b2、b3、b4分別為左右上下邊距。 
一、原理 
·程序中使用了IE內置的WebBrowser控件,無需用戶下載和安裝。WebBrowser有很多功能,其中包含了打印功能。 
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) 關閉窗體無提示 
·有時候我們希能夠讓javascript直接進行“頁面設置”,而不是讓用戶通過對話框進行“頁面設置”,這時候可以考慮調用pSetup()實現,此函數通過操作“注冊表”實現基本的頁面設置功能。不過該函數無法選擇打印機、設置默認紙張大小,請在手動在window的打印設置中完成。 
·在樣式表中,style標簽的media屬性設置為print,那么這里面的所有樣式只在打印時生效。我們稱之為“打印樣式表”。程序中,在打印樣式表中定義一個NoPrint樣式,用于隱藏指定部分的網頁。PageNext樣式則用于分頁。 
二、頁眉頁腳問題: 
·默認頁眉 &w&b頁碼,&p/&P 
·默認頁腳 &u&b&d 
·各種控制符含義: 
&w 網頁標題 
&u 顯示URL 
&d 以短格式打印當前日期 
&D 以長格式打印當前日期 
&t 打印當前時間 
&T 以 24 小時制的格式打印當前時間 
&p 打印當前頁碼 
&P 打印總頁數 
&b 右對齊文本(向右推移文本) 
&& 打印單個與號 (&) 字符 
&b中國&b “中國”二字居中 
&b&b中國&b “中國”二字靠右2/3處對齊 
三、其它問題 
·默認IE設置下,網頁背景是不能打印出來的,需要手動設置才行。所以為了保證您獲得最佳的打印效果,請調整您的瀏覽器設置,以IE5.5為例:工具菜單=》Internet選項》高級=》打印背景顏色和圖像,打鉤起來。 
·必須將IE的internet選項的安全設置中對于沒有標記為安全的ActiveX控件進行設置成提示或者啟用,否則會報錯,導致不可用?梢栽谑苄耪军c中處理。 
·瀏覽器窗口大小與打印頁面大小對頁面影響的區別:在瀏覽器窗口中,頁面以窗口大小為界,文字在窗口指定的范圍內排版,版面溢出部分通過移動滾動條顯示出來。打印時,則在“紙張大小”的范圍(去除頁邊距)內排版,橫向溢出部分不打印,縱向溢出部分則換頁。 
四、打印一個表格 
(使用背景色制作表格線,應在IE的Internet高級選項中鉤上“打印背景顏色和圖像”) 
