網頁打印,可以通過瀏覽器的"打印"功能實現,但"打印通過創建打印模板,你可以精確控制:
網頁打印及預覽時的頁面風格與內容編排風格;
打印屬性,如自動為打印的頁面添加卷標或編號;
精確控制打印預覽界面的各個元素與變量。
通過打印模板,你可以:
自動為所有打印頁面添加固定內容,如公司標識,版權申明,或者指定廣告;
自定義頁面標頭與尾注等元素,比如頁碼或卷標;
指定打印歷史與任務;
書本化奇偶分頁映射打印......
打印模板機制是建立在動態 Html 語言基礎上的,涉及到主要兩個行為:DeviceRect, LayoutRect ,下面我們就這兩個行為深入地探討 IE 6.0 的打印機制。
另外需要說明的是,DHTML (動態超文本標識語言)的行為跟其他語言的"行為"一樣,都是一種應用編程接口,初始狀態下有自己的默認屬性,在一定的事件下,由用戶決定調用其承認的功能模塊,從而產生相對應的"行為"。而且,"行為"可以自己編寫,不過得以".htc"為其擴展名以供調用。
一.DeviceRect ,定義打印總體風格:
打印總體風格,包括為打印頁面添加如公司標識的固定內容(網頁上不一定有,只體現在打印紙張上或預覽頁面上,后同);打印頁面的顏色風格;打印頁面的邊緣屬性或圖案;等等。
在進行 DeviceRect 引用前,先得確定頁面風格,方法是用<style>進行設置。
例一:我們來定制如下的打印模板
8.5 inch 寬
11 inch 高
黃色背景
1 pixel 寬的黑色實心左邊界
1 pixel 寬的黑色實心上邊界
4 pixels 寬的黑色實心右邊界
4 pixels 寬的黑色實心下邊界
所有邊界與紙張邊緣為 10 pixels 的距離
現在我們用 style 進行設定,假設這個 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 引用的完全頁面代碼,
<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>
在這個頁面中,共進行了兩個 DeviceRect 引用。作為一種規則,每一個單獨的打印頁面,必須有一個相對應的 DeviceRect 標記,假如有 1000 個頁面,那就得有 1000 個 DeviceRect 標記!嚇住了?別擔心,后面我們會教你一個方法,讓所有的 DeviceRect 標記自動完成!
在上面的代碼中,ID 是標志屬性,不同的頁面必須有自己不同的標識;CLASS 引用了 style 屬性;MEDIA 屬性則指明了本頁面的最終用途是進行打?。唬?IMPORT NAMESPACE="IE" IMPLEMENTATION="#default">這句話則是指輸入默認的行為,它們分別是 DeviceRect, LayoutRect。
二.LayoutRect ,定義頁面內容風格:
跟 DeviceRect 一樣,不同的頁面,要進行 LayoutRect 引用時都需要添加 LayoutRect 標記,其智能添加方法將在后面介紹; LayoutRect 與 DeviceRect 假如在同一個頁面中同時出現,則前者需放在后者之內;另外, LayoutRect 對內容風格的設定,也通過 style 得以實現。
例二:我們來定制如下的內容風格的打印模板:
5.5 inches 寬
8 inches 高
與打印紙張邊緣,四邊保持 1 inch 的寬度(加上頁面本身的邊緣寬度,為實際的打印邊緣寬度)
新聞熱點
疑難解答