用CSS建立列印頁面,不必為列印而專門建立一個HTML檔案,可以節省一些體力,其前提是按“WEB標準”用CSS+DIV佈局HTML頁面。
第一、在HTML頁面加入為印表機設定的CSS檔案
<link href="css/admin.css" rel="stylesheet" type="text/css" media="screen" /> <link href="css/admin-print.css" rel="stylesheet" type="text/css" media="print" />
media="screen" ,是面向螢幕的;
media="print" ,是面向列印的;
第二、建立列印版本的頁面,去除不必要的頁面元素,如導航、側欄、廣告、版權等。這時就可以體現出按“WEB標準”做頁面的優勢了,用CSS換個版式很容易。
/* 隱藏不列印項 start */ h1 span { /* 副標題 */ display: none; } #sidebar { /* 側欄 */ display: none; } #content td.ads { /* 表格內廣告 */ display: none; } #content th.col2 span { /* 錨連結 */ display: none; } #content #bottom-2 { /* 頁尾表格列印 */ display: none; } /* 隱藏不列印項 end */
第三、列印按鈕函式,IE、Firefox均可正常列印。
<input type=button value="打 印 本 頁" onclick="window.print()">
另外,還有一個本地版的列印頁面,可以進行“列印設定”和“列印預覽”,但因為此設定,網路列印需要呼叫IE瀏覽器一個控制元件,還需降低ActiveX控制元件安全,且只能在IE上執行,不實用。所以只貼一下呼叫程式碼,備份。
<OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 width=0> </OBJECT> <input type=button value="列印預覽" onclick=document.all.WebBrowser.ExecWB(7,1)> <input type=button value="頁面設定" onclick=document.all.WebBrowser.ExecWB(8,1)> <input type=button value="列印本頁" onclick=document.all.WebBrowser.ExecWB(6,1)>
第四、注意事項
在列印樣式中,列印字型大小是以點(pt)來計的,螢幕上字型大小顯示,象素(px)比點和英尺更合適。
在列印樣式中,CSS的float屬性有時可能會引起一些麻煩,會造成列印頁面缺失,所以儘量去除不必要塊級顯示。
關於列印設定,自定義頁首、頁尾,我查閱了一番資料,對此CSS和HTML無法控制,只能通過呼叫ActiveX控制元件來實現,但是這樣做不安全。最好方法是,列印前,你自己點選瀏覽器選單進行列印設定。
CSS中還有一個可以設定分頁符的標籤:“page-break-after”和“page-break-before”。因為我的節日頁面,表格較多,所以就沒有應用這個CSS,具體效果你自己試驗吧。