巧妙使用CSS建立可以列印的頁面

weixin_33831673發表於2014-01-21

用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,具體效果你自己試驗吧。

相關文章