網頁有許多便利的地方,但也有討人厭的時候
其中一個,就是列印的時候無法控制設定頁面
非得進入瀏覽器的設定列印頁面才能控制上、下、左、右、頁首、頁尾
這樣對使用者來說,是很頭痛的
如果以後設定跑掉了,又要重新設定一次
目前有個免費的功能可供使用,就是利用JavaScript搭配ActiveX就可以達成
先去以下網頁,按下download smsx.cab
http://www.meadroid.com/scriptx/sxdownload.asp
下載之後的檔案(smsx.cab),放在需要使用者下載的目錄
需要設定列印格式的網頁輸入以下的語法
<body>
<object style="display:none"
classid="clsid:5445be81-b796-11d2-b931-002018654e2e"
codebase="http://127.0.0.1/smsx.cab#Version=6,5,439,50">
</object>
<!-- 指定下載ActiveX檔案的路徑,也就是之前下載的smsx.cab
http://(網頁擺放的目錄)/smsx.cab#Version=6,5,439,50
-->
<!-- MeadCo ScriptX -->
<object id=factory style="display:none"
classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814">
</object>
<!-- 以上是必須填寫,不然無法執行 -->
</body>
然後在需要列印的地方,呼叫JavaScript的副程式
例如:onclick="SetPrint()"
副程式內容如下:
<script language="JavaScript" type="text/JavaScript">
function SetPrint(){
factory.printing.header = ""; //設定頁首的文字
factory.printing.footer = "";//設定頁尾的文字
factory.printing.portrait = true; //設定為直印
factory.printing.leftMargin = 13; //設定左邊界
factory.printing.topMargin = 0; //設定上邊界
factory.printing.rightMargin = 62; //設定友邊界
factory.printing.bottomMargin = 9; //設定下邊界
factory.printing.Print(false);
//列印其(true)為顯示列印詢問視窗若為false則不出現列印詢問視窗,但試過了!沒什麼用
}
</script>
這樣就可以控制列印格式
在第一次執行列印指令的時候,會要求下載ActiveX
一般網頁會出現Top Bar,警告是否安裝ActiceX,安裝下去就對了
如果有多頁,要自動設定分頁列印,可利用CSS指令
<div STYLE="page-break-after: always;">
中間的HTML都算第一頁
</div>
<div STYLE="page-break-after: always;">
第二頁
</div>
在IE7後,則要變成
第一頁
<P style='page-break-after:always'> </P>
第二頁
<P style='page-break-after:always'> </P>
第三頁
這樣就可以像word一樣!輕鬆列印想要的頁面囉
http://www.meadroid.com/還提供付費更進階的程式
以下是功能說明,有興趣的人可以參考看看