lodop和c-lodop臨時預設印表機同一任務測試
阿新 • • 發佈:2020-07-28
之前有博文測試了SELECT_PRINTER(),這個是臨時預設印表機,前面的博文對比了如何設定windows預設印表機,如何設定臨時預設印表機。以及臨時預設列印指定後,在lodop和c-lodop的效果。
前面的博文連結(cnblog的):LODOP指定window預設印表機和臨時預設印表機、
之前博文的測試方法:
方法1:設定的windows預設印表機。
方法2:設定頁面臨時預設印表機
方法3:一個沒在程式碼裡指定具體印表機的任務。
方法4:一個在程式碼裡指定了xps具體印表機的任務。
之前博文測試結果:
LODOP效果:
1.沒在程式碼指定具體印表機的,是選擇的臨時預設印表機。
2.在程式碼指定了具體的xps印表機的,是xps印表機。
1.沒在程式碼指定具體印表機的,是選擇的臨時預設印表機;
2.在程式碼指定了具體的xps印表機的,還是選擇的臨時預設印表機。
注意:也就是c-lodop中,頁面指定了臨時預設印表機,即使在程式碼裡重新指定新的印表機,也是沒有效果的。
之前有人測試樣例7,先測了臨時預設印表機,再測試3,4,由於用的是c-lodop方式,所以無論指定序號,還是指定名稱,都無效了,都會還是那個指定的臨時預設印表機。
實際測試確實是這樣,因此,如果有頁面多個任務需要不同的印表機,不要用這個臨時預設印表機方式。
建議用SET_PRINTER_INDEX或SET_PRINTER_INDEXA,參考樣例5,7,例如樣例5的步驟2的這個印表機列表
http://www.c-lodop.com/demolist/PrintSample7.html
頁面指定後傳引數方式,傳入選擇的印表機。
前面測試中,是該先指定臨時預設印表機,再在任務中測試。
此外,還有人可能會用到一個任務裡,一個任務裡選擇印表機再列印。(c-lodop下不能這麼用)
本文測試下這種使用方法。
正確寫法是臨時預設印表機和列印分兩個任務,可檢視該文前面體提到的之前的博文中的臨時預設印表機。
簡短問答:
1.臨時預設印表機能在同一個任務裡嗎
SELECT_PRINTER是臨時預設印表機,lodop和c-lodop下方式不同,c-lodop是非同步的,需要分成兩個任務,先指定臨時預設印表機,再用另一個任務列印。
不建議使用這個語句,建議用SET_PRINTER_INDEX或SET_PRINTER_INDEXA,參考樣例5,7,例如樣例5的步驟2的這個印表機列表
http://www.c-lodop.com/demolist/PrintSample5.html
http://www.c-lodop.com/demolist/PrintSample7.html
不建議用臨時預設印表機,該方法lodop和c-lodop下表現不同,且c-lodop指定後,該頁面再用SET_PRINTER_INDEX等指定就會是無效了,只能重新整理頁面後才能重新選擇。
--簡短問答結束----
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>臨時預設印表機一個任務測試</title> <script language="javascript" src="LodopFuncs.js"></script> </head> <body> <p><a href="javascript:prn1_preview()">列印預覽(選臨時預設後列印)</a></p> <p><a href="javascript:prn2_preview()">檢視SELECT_PRINTER()返回值</a></p> <script language="javascript" type="text/javascript"> var LODOP; //宣告為全域性變數 var pr; function prn1_preview() {//測試一個任務中臨時預設印表機選擇後列印 LODOP=getLodop(); //這個方法lodop可以,c-lodop不行,c-lodop是非同步的,只能分成兩個任務 LODOP.PRINT_INIT(""); //c-lodop下這個方法是錯誤的哦 LODOP.SELECT_PRINTER(); LODOP.ADD_PRINT_TEXT(27,29,100,20,"一個文字"); LODOP.PREVIEW(); }; function prn2_preview() {//測試SELECT_PRINTER返回值。 LODOP=getLodop(); if (LODOP.CVERSION) CLODOP.On_Return=function(TaskID,Value){alert("C-Lodop輸出的返回值:"+Value);}; var strResult=LODOP.SELECT_PRINTER(); if (!LODOP.CVERSION) {alert("Lodop輸出的返回值:"+strResult);} }; </script> </body>
圖示: