有的打印機不支持自定義紙張,或不支持當前設置的紙張尺寸,會造成紙張尺寸和代碼里設置的尺寸不一致的情況。
現象:
1.代碼一樣,紙張語句設置正確,有的打印機紙張正常,有的打印機不正常。
2.代碼一樣,紙張語句設置正確,寬度正常,高度不正常。(或相反)
3.代碼一樣,紙張語句設置正確,虛擬打印機測試正常,真實打印機不正常。
簡短問答區域:
紙張設置,參考樣例5 http://www.c-lodop.com/demolist/PrintSample5.html
用xps或pdf虛擬打印機測試一下(測試可用樣例5),如果虛擬打印機輸出的是正確的紙張,真實打印機不是,可能是打印機不支持該自定義紙張。
選擇該真實打印機,在打印預覽下方狀態欄查看一下紙張大小,有的打印機不支持該自定義紙張。
用官網樣例5直接輸入尺寸,在預覽里選擇不同打印機 ,對比預覽效果,有的打印機不支持自定義紙張,有的有可打區域。
打印機不支持就不行了,不用自定義紙張,選擇打印機本身自帶的紙張試試,打印機自帶的紙張肯定支持。
參考樣例5步驟3http://www.c-lodop.com/demolist/PrintSample5.html,獲取打印機的紙張列表,紙張語句寬高設置成0,第四個參數紙張名稱在寬高無效情況下會有效,就會根據紙張名稱走,獲取的是打印機本身自帶的紙張名稱,所以一定會支持打印機自帶的紙張。
如果打印機自帶的紙張沒有所需要的尺寸,LODOP設置的自定義紙張不支持,那么就沒辦法了,只能換打印機或換用打印機支持的紙張。
紙張的一些優先級 http://blog.sina.com.cn/s/blog_721e77e50100wto6.html
非簡單問答,正文介紹:
由於打印機千差萬別,不是所有打印機都支持LODOP自定義紙張,而且打印機可打區域本身也有差異。關於不同打印機的不同問題,可以用打印維護微調(相關博文:Lodop打印維護PRINT_SETUP本地緩存ini文件、LODOP不同打印機出現偏移問題、LODOP批量打印多頁模版進行維護)
如果是不支持自定義紙張,而內容又和紙張有關,那么就不好調整了,打印機本身不支持這種紙張就不行了。
如何測試某個打印機是否支持當前設置的紙張,可用官網樣例5直接輸入尺寸,在預覽里選擇不同打印機 ,對比預覽效果。
在預覽里直接選擇不同打印機進行預覽對比:
測試代碼:
<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> <a href="javascript:prn1_preview()">不同打印機紙張不同,紙張無效</a><br> <script language="javascript" type="text/javascript"> var LODOP; //聲明為全局變量 function prn1_preview() { LODOP=getLodop(); LODOP.PRINT_INIT(""); LODOP.SET_PRINT_PAGESIZE(1,800,600,"");//設置紙張為80mm*60mm LODOP.ADD_PRINT_HTM(42,30,300,100,"<body style=\"margin:50px\">\r\n HTML Demo content\r\n <br><font color=\"#FF0000\">Double click me and modify...</font>\r\n</body>"); //LODOP.PRINT_DESIGN(); LODOP.PREVIEW(); }; </script> </body>
預覽選擇不同打印機效果圖示: