PRINT沒有返回job代碼或truefalse,返回ok的一種情況


之前也有其他客戶問過,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>

圖示 :


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM