轉(zhuǎn)自:http://blog.sina.com.cn/s/blog_3eba8f1c0100emu4.html
最近寫一些東西需要提供網(wǎng)頁打印功能,所以歸納總結(jié)了一下,本節(jié)主要講述使用IE6支持打印功能,不同瀏覽器安全設(shè)置與支持有差異,如果不支持,請使用您的瀏覽器自帶打印功能(或手動設(shè)置啟用ActiveX控件)。書寫有不足或描述不清的地方請大家指正。^-^
利用CSS樣式打印是經(jīng)常使用的一種打印方法,利用它可以非常方便的實現(xiàn)打印頁面中的指定內(nèi)容和分頁打印,下面將通過具體實例介紹如何利用CSS樣式打印。
[分析]:
1.打印樣式區(qū)分:打印網(wǎng)頁帶頁面樣式,需指明一個media='print'的樣式,建議分開,如下創(chuàng)建軍一個bankprint.css打印樣式文件。
<link rel="stylesheet" media="screen" type="text/css" href="/public/default/css/bank.css" />
<!-- 打印樣式 -->
<link rel="stylesheet"
media="print" type="text/css" href="/public/default/css/bankprint.css" />
例:
<style
media=‘print’>
.Noprint {display:none;}
.PageBreak {page-break-after: always;}
</style>
說明:
media類型是CSS屬性媒體類型,用于直接引入媒體的屬性。其語法格式如下:
@media screen | print | projection | braille | aural | tv | handheld | all
參數(shù)說明
screen:指計算機屏幕。
print:指用于打印機的不透明介質(zhì)。
projection:指用于顯示的項目。
braille:盲文系統(tǒng),指有觸覺效果的印刷品。
aural:指語音電子合成器。
tv:電視類型的媒體。
handheld:指手持式顯示設(shè)備。
all:用于所有媒體。
2.WebBrowser控件
同其他控件一樣,首先我們需要在頁面中嵌入WebBrowser控件,不過由于該控件是IE瀏覽器自帶的,支持瀏覽器默認(rèn)安全設(shè)置,因此避免了安全性設(shè)置的麻煩。對于IE7及以上安全性要求更高的瀏覽器,您或許還是需要自定義IE的安全性級別。
<OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" id="wb" width="0" height="0"></OBJECT>
下面就是該控件涉及打印的功能調(diào)用,用戶可以在JavaScrip中調(diào)用:
wb.execwb(6,1); //打印,打印當(dāng)前頁面
wb.execwb(7,1); //打印預(yù)覽
wb.execwb(8,1); //打印設(shè)置,調(diào)出系統(tǒng)打印設(shè)置對話框
3.頁眉、頁腳設(shè)置:打印時,有的需要去掉頁眉頁腳,或替換成自已想要的。
<script language="JavaScript">
var hkey_root,hkey_path,hkey_key;
hkey_root="HKEY_CURRENT_USER";
hkey_path="\\Software\\Microsoft\\Internet Explorer\\PageSetup\\";
//配置網(wǎng)頁打印的頁眉頁腳為空
function pagesetup_null(){
try{
var RegWsh = new ActiveXObject("WScript.Shell");
hkey_key="header";
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"");
hkey_key="footer";
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"");
//&b 第&p頁/共&P頁 &b
}catch(e){}
}
//配置網(wǎng)頁打印的頁眉頁腳為默認(rèn)值
function pagesetup_default(){
try{
var RegWsh = new ActiveXObject("WScript.Shell");
hkey_key="header";
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"&w&b頁碼,&p/&P")
hkey_key="footer";
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"&u&b&d");
}catch(e){}
}
...
</script>
[源碼例子]:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>打印設(shè)置</title>
<link rel="stylesheet" media="screen" type="text/css" />
<!-- 打印樣式 -->
<link rel="stylesheet" media="print" type="text/css" />
<script language="JavaScript">
var hkey_root,hkey_path,hkey_key;
hkey_root="HKEY_CURRENT_USER";
hkey_path="\\Software\\Microsoft\\Internet Explorer\\PageSetup\\";
//配置網(wǎng)頁打印的頁眉頁腳為空
function pagesetup_null(){
try{
var RegWsh = new ActiveXObject("WScript.Shell");
hkey_key="header";
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"");
hkey_key="footer";