之前也有其他客戶問過,PRINT獲取是否加入隊列,返回的不是true或false,而是ok。
或加上LODOP.SET_PRINT_MODE("CATCH_PRINT_STATUS", true);,返回的不是job代碼,而是ok。
之前的客戶沒有發代碼,所以我讓他們測試樣例,樣例右鍵查看源碼,對照樣例排查,估計這些人對照樣例自己排查到了,這次有客戶直接發了自己的代碼,知道了為什么那些客戶說返回ok的原因,是因為一個錯誤用法。
原因是在任務里指定打印機語句錯誤,用成了設置winodws默認打印機。
如果想有設置winodows打印機的功能,可以單獨一個按鈕等作為設置win默認打印機的功能。
而在打印任務里指定打印機,則需要用指定打印機的語句,具體可參考樣例7,或樣例5的第2步。
設置windows默認打印機在樣例5的第7步,估計是參考樣例的時候沒有注意樣例5的第3步的那個獲取本機打印機列表,指定打印機的方法。而是誤認為這個設置windows默認打印機為指定打印機。
簡短問答:
1.為什么print返回的不是true或false,而是ok?
參考樣例4,35 http://www.c-lodop.com/demolist/PrintSample35.html
對照樣例排查下,樣例右鍵查看源碼。
指定打印機語句是怎樣指定的,是用的樣例7的方式嗎,SET_PRINTER_INDEX這種。
發一下代碼。
是否用了SET_PRINT_MODE("WINDOW_DEFPRINTER", "設置windows默認打印機這種。
如果要在任務中指定打印機,用樣例7那種,例如SET_PRINTER_INDEX這種。
2..為什么print加CATCH_PRINT_STATUS返回的不是job代碼,而是ok?
樣例45 http://www.c-lodop.com/demolist/PrintSample45.html
樣例右鍵查看源碼,對照樣例排查下。
--簡短問答結束----
測試代碼:
<script language="javascript" src="LodopFuncs.js"></script> </head> <body> 不是正常任務選打印機(設置winodws默認打印機了):<input type="text" id="T1" size="48"><br> 正常任務選打印機:<input type="text" id="T2" size="48"><br> <p><a href="javascript:MyPrint1()">任務里不是選打印機,設置windows默認打印機</a></p> <p><a href="javascript:MyPrint2()">任務里正確指定了打印機</a></p> <script language="javascript" type="text/javascript"> var LODOP; //全局變量 function MyPrint1() {//客戶的一種錯誤用法,導致返回ok,設置windows默認打印機,而不是在任務內指定打印機 LODOP = getLodop(); LODOP.PRINT_INIT("打印控件功能演示_Lodop功能_獲得打印狀態1"); LODOP.SET_PRINT_MODE("WINDOW_DEFPRINTER", "Microsoft XPS Document Writer");//設置windows默認打印機, LODOP.ADD_PRINT_TEXT(50, 231, 260, 39, "打印的第一頁內容"); LODOP.NEWPAGEA(); LODOP.ADD_PRINT_TEXT(50, 231, 260, 39, "打印的第二頁內容"); LODOP.SET_PRINT_MODE("CATCH_PRINT_STATUS", true); if (LODOP.CVERSION) { LODOP.On_Return = function (TaskID, Value) { document.getElementById('T1').value = Value; }; LODOP.PRINT(); return; } else document.getElementById('T1').value = LODOP.PRINT(); }; function MyPrint2() {//正確的一種在任務中指定打印機的方法 LODOP = getLodop(); LODOP.PRINT_INIT("打印控件功能演示_Lodop功能_獲得打印狀態1"); LODOP.SET_PRINTER_INDEX("Microsoft XPS Document Writer");//在任務內指定打印機 LODOP.ADD_PRINT_TEXT(50, 231, 260, 39, "打印的第一頁內容"); LODOP.NEWPAGEA(); LODOP.ADD_PRINT_TEXT(50, 231, 260, 39, "打印的第二頁內容"); LODOP.SET_PRINT_MODE("CATCH_PRINT_STATUS", true); if (LODOP.CVERSION) { LODOP.On_Return = function (TaskID, Value) {document.getElementById('T2').value = Value; }; LODOP.PRINT(); return; } else document.getElementById('T2').value = LODOP.PRINT(); }; </script> </body>
圖示 :