zoukankan      html  css  js  c++  java
  • LODOP设置打印机不存在不打印

    LODOP中打印机的选择有优先级的存在,如果程序中指定的是错误的打印机,那么会走下一个优先级,这样,就可能存在选择了打印机无效,从默认打印机打印出来了,可以在代码里加判断避免这一点。

    打印机优先级简介:
    第一优先级:SET_PRINTER_INDEX等程序代码里指定的打印机。
    第二优先级:上次在预览界面的打印设置中选择的打印机,Lodop按任务名对应记忆下来。
    第三优先级:操作系统选择的默认打印机。
    默认打印机优先级最低,当前两个优先级不存在或没生效时,会走最低的默认打印机优先级。

    可以在预览或打印前,判断一下打印机是否存在,决定是否执行预览或打印命令,这种方法可避免走优先级输出到不必要的打印机上

    以下是lodop和c-lodop测试判断和不判断的区别和结果。(以PREVIEW预览为例)

    lodop插件方式、不加判断:(弹出两次,一次提示不存在,关闭后弹出预览窗口)
    第一步:弹出提示 打印机“(具体打印机名称或序号)”不存在。
    第二步:关闭提示,点确定或叉号,弹出预览窗口。

    lodop插件方式、加判断:(弹出一次,提示打印机不存在,不会弹出预览窗口)
    弹出提示 打印机“(具体打印机名称或序号)”不存在。
    不再弹出预览窗口。

    c-lodop方式、不加判断:(弹出一次,弹出预览窗口)
    弹出预览窗口。

    c-lodop方式、加判断:(弹出0次,什么也不弹出)
    不弹出预览窗口。

    由于没设置任务名,也没上次预览的记录,所以当程序里指定一个错误的不存在的打印机的时候,以上测试中弹出预览的均为默认打印机,也就是走了其他优先级。
    这样,如果打印的时候打印机不存在,就会出现在其他打印机打印的情况。

    加了判断后的效果:
    lodop弹出 打印机“(具体打印机名称或序号)”不存在,c-lodop什么也不弹出。
    加了判断后,两者都不再走其他优先级进行预览或打印,避免了在其他打印机输出的情况。

    具体方法:在打印或预览前判断一下打印机是否存在,不存在不执行打印方法,存在再执行。
    if (LODOP.SET_PRINTER_INDEX("打印机名或序号"))//不存在的打印机
    LODOP.PREVIEW();//判断为假,不执行该句

    测试代码:

    本人本机Brother Color Type3 Class Driver存在,在该打印机名称后面加了个1,Brother Color Type3 Class Driver1这个名称的打印机名称就不存在了。

    <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_preview()">打印预览</a><br>
    <a href="javascript:prn2_preview()">打印预览(加了判断的)</a><br>
    <script language="javascript" type="text/javascript">   
            var LODOP; //声明为全局变量 
        function prn1_preview() {
            LODOP=getLodop(); 
            LODOP.PRINT_INITA(12,13,500,300,"");
            LODOP.SET_PRINTER_INDEX("Brother Color Type3 Class Driver1");//不存在的打印机
            LODOP.ADD_PRINT_TEXT(10,10,100,20,"新加文本1");    
            LODOP.PREVIEW();    
        };
        function prn2_preview() {
            LODOP=getLodop(); 
            LODOP.PRINT_INITA(12,13,500,300,"");      
            LODOP.ADD_PRINT_TEXT(10,10,100,20,"新加文本1");    
        if (LODOP.SET_PRINTER_INDEX("Brother Color Type3 Class Driver1"))//不存在的打印机
            LODOP.PREVIEW();    
        };
    </script> 
    </body>

    图示:

  • 相关阅读:
    决策树分类
    集群服务器 获取COOKIE错误
    React 自写Loading
    HTB-靶机-Unattended
    HTB-靶机-LaCasaDePapel
    HTB-靶机-FriendZone
    HTB-靶机-CTF
    HTB-靶机-FluJab
    HTB-靶机-Help
    HTB-靶机-Chaos
  • 原文地址:https://www.cnblogs.com/huaxie/p/10280824.html
Copyright © 2011-2022 走看看