LODOP批量打印判断是否加入队列1

直接打印的时候,可以通过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>

图示:

原文地址:https://www.cnblogs.com/huaxie/p/12133664.html