欢迎来到元素模板ys720.com,本站提供专业的织梦模板PBOOTCMS模板网站模板网站修改/网站仿站
当前位置:主页 > 程序教程 > 其他教程 >
其他教程

LODOP插件设置同一个任务发送到多个不同打印机

(元素模板) / 2023-04-17 16:37
上一篇博文介绍了Lodop打印语句的最基本结构(什么是任务),一个任务只能有一条打印语句(最后是PRINT、PRINTA、PREVIEW等),如果执行多次,会弹出LODOP多次,以及C-LODOP会提示窗口已打开等,可以查看本博客的相关博文。

如果在一个任务中执行了两次PRINT,lodop在打印完后会自动清理之前的任务,不仅是打印的内容,还有打印初始化语句等,所以连续执行两次会导致后面的A PRINT为空白。
如果你想让第二个任务有内容,你可以使用这个语句:
LODOP。 SET_PRINT_MODE("NOCLEAR_AFTER_PRINT",true);//设置打印后无需清洗的打印信息
设置完成后,再次发送,仍会保留打印前的信息。通过这个可以重新设置打印机语句,第二台会按照第二台打印机打印,这样一个任务就发给了两台打印机。

一般情况下,打印任务会在打印完成后进行清理,因此一个任务只能为打印机设置一次,发送给一台打印机。通过此设置,可以发送到多台打印机。

发送到两台打印机,也可以设置两个任务,两个任务的内容是一样的,每个任务选择不同的打印机。
如果是多次发送一台打印机,直接设置份数即可。

代码:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>WEB打印控件LODOP</title>
<script language="javascript" src="LodopFuncs.js"></script>
</head>
<body>
<a href="javascript:prn1()">默认清理任务后再打印(队列里第一个文档)</a><br>
<a href="javascript:prn2()">设置不清理后,再打印(队列里第二个文档)</a><br>
<script language="javascript" type="text/javascript">
        var LODOP; //声明为全局变量
    function CreatePrintPage() {
        LODOP=getLodop();
        LODOP.PRINT_INIT("这是任务名");
        LODOP.SET_PRINT_PAGESIZE(1,300,500,"");
        LODOP.ADD_PRINT_TEXT(37,5,100,20,"新加文本1");
        LODOP.ADD_PRINT_SHAPE(5,92,7,100,60,0,1,"#000000");
    };
    function prn1() {//错误写法,任务完成后自动清理了打印任务,第二个空白
        LODOP=getLodop();
         CreatePrintPage();
         LODOP. SET_PRINTER_INDEXA("HP Color LaserJet 1600 Class Driver");//设置某个打印机
         LODOP.PRINT();//打印
         LODOP. SET_PRINTER_INDEXA("Brother Color Type3 Class Driver");//设置另一个打印机
         LODOP.PRINT();//打印
    };
    function prn2() {//正确写法,设置带你完不清理,第二个有内容。
        LODOP=getLodop();
         CreatePrintPage();
         LODOP. SET_PRINT_MODE("NOCLEAR_AFTER_PRINT",true);//设置打印完毕不清理打印信息
         LODOP. SET_PRINTER_INDEXA("HP Color LaserJet 1600 Class Driver");//设置某个打印机
         LODOP.PRINT();//打印
         LODOP. SET_PRINTER_INDEXA("Brother Color Type3 Class Driver");//设置另一个打印机
         //LODOP. SET_PRINTER_INDEXA("Doro PDF Writer");//设置某个pdf虚拟打印机
         LODOP.PRINT();//打印
    };
    //注意这里用的是PRINT,
    //如果是预览,设计,PIRNTA(直接打印带弹框)的,那种,c-lodop只能打开一个窗口。c-lodop会提示窗口已开单,详见其他博文
</script>
</body>

Copyright @ 2013-2021 元素模板 www.ys720.com All Rights Reserved. 版权所有 元素模板 www.ys720.com