直接打印的时候,可以通过PRINT或PRINTA的返回值判断是否加入队列,加入队列算成功。
之前的博文:c-lodop回调函数简短问答及相关博文、
判断直接打印返回值是一个任务的,如果是c-lodop批量打印,则需要LODOP.On_Return_Remain=true;将回调结果保留,c-lodop任务可通过TaskID区分。
如果是lodop批量打印,由于lodop是插件,可直接返回,是同步的,可以直接用循环的变量作为任务的区分。
由于c-lodop是用的回调函数,可以在回调里面通过任务名id进行区分。
如下面的测试的log,在测试代码里注释掉了,在三个位置(用ABC区分)加了log日志输出i,结果如图,在回调里的i都是5,在回调外的i都是随着循环进行实时变化。
如代码和图示,c-lodop可以直接用taskid区分,lodop可以用实时变量等区分。
c-lodop的任务编号最后一位是从1开始的,也可以直观的看出是第几个任务。
lodop中直接用的变量i,所以是0-4这种索引,如果想改成自然数,循环时可以从1开始,循环到小于6也可以。
测试代码:
<script language="javascript" src="LodopFuncs.js"></script> </head> <body> <a href="javascript:print1()">测试print1</a><br> <script language="javascript" type="text/javascript"> var LODOP; //声明为全局变量 function creatpage(Tn){ LODOP.PRINT_INIT(""); // LODOP.SET_PRINTER_INDEX("Brother Color Type3 Class Driver"); LODOP.SET_PRINTER_INDEX("Microsoft XPS Document Writer"); LODOP.SET_PRINT_PAGESIZE(1,300,500,""); LODOP.ADD_PRINT_TEXT(18,7,105,20,Tn); LODOP.ADD_PRINT_RECT(58,5,100,60,0,1); }; function print1(){ LODOP=getLodop(); for(i=0;i<5;i++) { // console.log("A位置的"+i); creatpage("第"+i+"个的文本内容"); if (LODOP.CVERSION) { LODOP.On_Return_Remain=true; LODOP.On_Return=function(TaskID,Value){ if (Value) {//console.log("B位置的"+i); console.log("c第"+TaskID+"个任务成功"+Value);} else console.log("c第"+TaskID+"个任务失败"+Value);}; LODOP.PRINT(); // console.log("C位置的"+i); }; if (!LODOP.CVERSION) {if (LODOP.PRINT()) console.log("L第"+i+"个任务成功"); else console.log("L第"+i+"个任务失败");} } }; </script> </body>
图示: