代碼設置了自定義紙張,預覽下方狀態欄先的不是設置的紙張,而是諸如A4紙張等默認紙張。
且預覽的設置里是該真實打印機預覽的,這種現象一般是該打印機不支持自定義紙張導致的。
紙張設置,參考樣例5 http://www.c-lodop.com/demolist/PrintSample5.html
用xps或pdf虛擬打印機測試一下(測試可用樣例5),如果虛擬打印機輸出的是正確的紙張,真實打印機不是,可能是打印機不支持該自定義紙張。 選擇該真實打印機,在打印預覽下方狀態欄查看一下紙張大小,有的打印機不支持該自定義紙張。
樣例5的步驟1輸入尺寸,點預覽,預覽里切換不同打印機,該真實打印機不支持該自定義紙張尺寸,會不生效。
不過目前發現,也有一種錯誤寫法,可能會導致支持該自定義紙張,預覽卻顯示的是A4等默認尺寸,這種現象的原因是指定打印機錯誤導致的。
在打印任務內指定打印機語句,可用:
SET_PRINTER_INDEX(oIndexOrName);按序號或名稱指定打印機,選定后禁止手工重選;
SET_PRINTER_INDEXA(IndexorName);按序號或名稱指定打印機,選定后允許手工重選;
如果把指定windows默認打印機(樣例5發步驟7), LODOP.SET_PRINT_MODE("WINDOW_DEFPRINTER",打印機名稱或序號);這種寫到了和打印在一個任務里,誤認為該語句是指定該打印任務的打印機語句,就會出現這種現象。
如果想用語句修改windows默認打印機,應和打印任務分成兩個任務,控制不同的功能,例如樣例7任務內指定打印機,樣例5的步驟7里的單獨操作windows默認打印機。
現象
預覽的設置是該打印機,預覽下方狀態欄該紙張不生效。
(虛擬打印機也會表現為自定義紙張不生效)
現象原因
誤認為LODOP.SET_PRINT_MODE("WINDOW_DEFPRINTER",打印機名稱或序號);是在任務內指定打印機,寫到了任務里,導致出現這個現象。
測試代碼 :
<script language="javascript" src="LodopFuncs.js"></script> <title>Document</title> </head> <body> <a href="javascript:prn1_preview()">預覽效果1(自定義紙張無效)</a><br> <a href="javascript:prn2_preview()">預覽效果2(自定義紙張有效)</a><br> <script language="javascript" type="text/javascript"> var LODOP; //聲明為全局變量 function prn1_preview() {//測試錯誤寫法 LODOP=getLodop(); LODOP.PRINT_INIT(""); LODOP.SET_PRINT_PAGESIZE(1,1100,2000,""); LODOP.SET_PRINT_MODE("WINDOW_DEFPRINTER","Microsoft XPS Document Writer");//錯誤寫法,測試用 LODOP.ADD_PRINT_TEXT(0,0,100,20,"文本內容一");//然后多個ADD語句及SET語 //LODOP.PRINT_DESIGN(); LODOP.PREVIEW(); }; function prn2_preview() { LODOP=getLodop(); LODOP.PRINT_INIT(""); LODOP.SET_PRINT_PAGESIZE(1,1100,2000,""); LODOP.SET_PRINTER_INDEX("Microsoft XPS Document Writer"); LODOP.ADD_PRINT_TEXT(0,0,100,20,"文本內容一");//然后多個ADD語句及SET語 //LODOP.PRINT_DESIGN(); LODOP.PREVIEW(); }; </script> </body>
圖示: