網(wǎng)頁(yè)打印,可以通過(guò)瀏覽器的"打印"功能實(shí)現(xiàn),但"打印通過(guò)創(chuàng)建打印模板,你可以精確控制:
網(wǎng)頁(yè)打印及預(yù)覽時(shí)的頁(yè)面風(fēng)格與內(nèi)容編排風(fēng)格;
打印屬性,如自動(dòng)為打印的頁(yè)面添加卷標(biāo)或編號(hào);
精確控制打印預(yù)覽界面的各個(gè)元素與變量。
通過(guò)打印模板,你可以:
自動(dòng)為所有打印頁(yè)面添加固定內(nèi)容,如公司標(biāo)識(shí),版權(quán)申明,或者指定廣告;
自定義頁(yè)面標(biāo)頭與尾注等元素,比如頁(yè)碼或卷標(biāo);
指定打印歷史與任務(wù);
書(shū)本化奇偶分頁(yè)映射打印......
打印模板機(jī)制是建立在動(dòng)態(tài) Html 語(yǔ)言基礎(chǔ)上的,涉及到主要兩個(gè)行為:DeviceRect, LayoutRect ,下面我們就這兩個(gè)行為深入地探討 IE 6.0 的打印機(jī)制。
另外需要說(shuō)明的是,DHTML (動(dòng)態(tài)超文本標(biāo)識(shí)語(yǔ)言)的行為跟其他語(yǔ)言的"行為"一樣,都是一種應(yīng)用編程接口,初始狀態(tài)下有自己的默認(rèn)屬性,在一定的事件下,由用戶決定調(diào)用其承認(rèn)的功能模塊,從而產(chǎn)生相對(duì)應(yīng)的"行為"。而且,"行為"可以自己編寫(xiě),不過(guò)得以".htc"為其擴(kuò)展名以供調(diào)用。
一.DeviceRect ,定義打印總體風(fēng)格:
打印總體風(fēng)格,包括為打印頁(yè)面添加如公司標(biāo)識(shí)的固定內(nèi)容(網(wǎng)頁(yè)上不一定有,只體現(xiàn)在打印紙張上或預(yù)覽頁(yè)面上,后同);打印頁(yè)面的顏色風(fēng)格;打印頁(yè)面的邊緣屬性或圖案;等等。
在進(jìn)行 DeviceRect 引用前,先得確定頁(yè)面風(fēng)格,方法是用<style>進(jìn)行設(shè)置。
例一:我們來(lái)定制如下的打印模板
8.5 inch 寬
11 inch 高
黃色背景
1 pixel 寬的黑色實(shí)心左邊界
1 pixel 寬的黑色實(shí)心上邊界
4 pixels 寬的黑色實(shí)心右邊界
4 pixels 寬的黑色實(shí)心下邊界
所有邊界與紙張邊緣為 10 pixels 的距離
現(xiàn)在我們用 style 進(jìn)行設(shè)定,假設(shè)這個(gè) style 名為 Mystyle1:
<style TYPE="text/CSS">
.Mystyle1
{
width:8.5in;
height:11in;
background:#FFFF99;
border-left:1 solid black;
border-top:1 solid black;
border-right:4 solid black;
border-bottom:4 solid black;
margin:10px;
}
</style>
下面我們給出 DeviceRect 引用的完全頁(yè)面代碼,
<HTML xmlNS:IE>
<HEAD>
<?IMPORT NAMESPACE="IE" IMPLEMENTATION="#default">
<style TYPE="text/css">
.Mystyle1
{
width:8.5in;
height:11in;
background:#FFFF99;
border-left:1 solid black;
border-top:1 solid black;
border-right:4 solid black;
border-bottom:4 solid black;
margin:10px;
}
</style>
</HEAD>
<BODY>
<IE:DEVICERECT ID="page1" CLASS="Mystyle1" MEDIA="</IE:DEVICERECT>
<IE:DEVICERECT ID="page2" CLASS="Mystyle1" MEDIA="print">
</IE:DEVICERECT>
</BODY>
</HTML>
在這個(gè)頁(yè)面中,共進(jìn)行了兩個(gè) DeviceRect 引用。作為一種規(guī)則,每一個(gè)單獨(dú)的打印頁(yè)面,必須有一個(gè)相對(duì)應(yīng)的 DeviceRect 標(biāo)記,假如有 1000 個(gè)頁(yè)面,那就得有 1000 個(gè) DeviceRect 標(biāo)記!嚇住了?別擔(dān)心,后面我們會(huì)教你一個(gè)方法,讓所有的 DeviceRect 標(biāo)記自動(dòng)完成!
在上面的代碼中,ID 是標(biāo)志屬性,不同的頁(yè)面必須有自己不同的標(biāo)識(shí);CLASS 引用了 style 屬性;MEDIA 屬性則指明了本頁(yè)面的最終用途是進(jìn)行打印;<?IMPORT NAMESPACE="IE" IMPLEMENTATION="#default">這句話則是指輸入默認(rèn)的行為,它們分別是 DeviceRect, LayoutRect。
二.LayoutRect ,定義頁(yè)面內(nèi)容風(fēng)格:
跟 DeviceRect 一樣,不同的頁(yè)面,要進(jìn)行 LayoutRect 引用時(shí)都需要添加 LayoutRect 標(biāo)記,其智能添加方法將在后面介紹; LayoutRect 與 DeviceRect 假如在同一個(gè)頁(yè)面中同時(shí)出現(xiàn),則前者需放在后者之內(nèi);另外, LayoutRect 對(duì)內(nèi)容風(fēng)格的設(shè)定,也通過(guò) style 得以實(shí)現(xiàn)。
例二:我們來(lái)定制如下的內(nèi)容風(fēng)格的打印模板:
5.5 inches 寬
8 inches 高
與打印紙張邊緣,四邊保持 1 inch 的寬度(加上頁(yè)面本身的邊緣寬度,為實(shí)際的打印邊緣寬度)
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注