LODOP中的打印項,例如ADD_PRINT_HTM,參數分別為頂邊距,左邊距,寬,高,打印項內容。
第三四參數寬高,除了可以用值和百分比,還可以用RightMargin和BottomMargin變相控制寬高。
RightMargin右邊距和BottomMargin下邊距容易被誤解為:設置右邊距和下邊距后,打印項內部的內容和紙張的距離就是右邊距和下邊距了。
實際上不是這樣的,打印項在紙張中的位置,還是通過前兩個參數頂邊距和左邊距固定位置,這兩個右邊距和下邊距只是變相控制不固定寬高的內容的寬高。如果是內容超出了紙張,用這個設置右邊距下邊距是沒有效果的,因為寬高樣式本身在內容里指定了,超出紙張,可以調整樣式,有些樣式不是自己寫的,或者也可以用整頁縮放Full-Page或溢出縮放(整頁縮放相關博文:LODOP整頁縮放,寬度、高度溢出縮放)
左邊距:打印項距離紙張左側的距離。
頂邊距:打印項距離紙張上方的距離。
右邊距(變相控制寬):左邊距控制打印項的初始位置,打印項內容寬高不固定情況下,距離右邊紙張的距離。相當於變相控制了寬度,即是 紙張寬度-左邊距-右邊距=打印項的寬度。
下邊距(變相控制高):頂邊距控制打印項的初始位置,打印項內容寬高不固定情況下,距離下邊紙張的距離。相當於變相控制了高度,即是 紙張高度-頂邊距-下邊距=打印項的高度。
也就是說,這個變相控制是有條件的,打印項內容在不定寬高的時候才有效。如果打印項本身樣式里設置了具體的寬高,不會按照這個改變內容本身的寬高,打印項內容也不會到右邊或下邊去。
測試代碼:
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>WEB打印控件LODOP</title> <script language="javascript" src="LodopFuncs.js"></script> </head> <body> <div id="d1"> <table width="300" border=1 style="border-collapse:collapse;table-layout:fixed;" > <tr> <td width="51" height="16">1</td> <td width="51" height="16">333</td> </tr> </table> </div> <div id="d2"> <table width="100%" height="100%" border=1 style="border-collapse:collapse;" > <tr> <td width="40%">1</td> <td width="60">333</td> </tr> </table> </div> <a href="javascript:prn1_preview()">設置了具體寬高值的表格</a><br> <a href="javascript:prn2_preview()">設置的百分比寬高值</a><br> <script language="javascript" type="text/javascript"> var LODOP; //聲明為全局變量 function prn1_preview() { LODOP=getLodop(); LODOP.PRINT_INIT(""); LODOP.SET_PRINT_PAGESIZE(1,1300,600,""); LODOP.ADD_PRINT_HTM("2cm","1cm","RightMargin:1cm","BottomMargin:2cm",document.getElementById("d1").innerHTML); LODOP.PRINT_DESIGN(); //LODOP.PREVIEW(); }; function prn2_preview() { LODOP=getLodop(); LODOP.PRINT_INIT(""); LODOP.SET_PRINT_PAGESIZE(1,1300,600,""); LODOP.ADD_PRINT_HTM("2cm","1cm","RightMargin:1cm","BottomMargin:2cm",document.getElementById("d2").innerHTML); LODOP.PRINT_DESIGN(); //LODOP.PREVIEW(); }; </script> </body>
如測試代碼和圖示,兩個表格,一個表格里用的是實際的數值寬高,一個用的是百分比,效果如圖,用百分比的寬高。固定值的會按照html寫的具體樣式進行控制寬高,只有百分比的這種不固定的會按照右邊距和下邊距控制寬高。
圖示: