zoukankan      html  css  js  c++  java
  • LODOP指定window默认打印机和临时默认打印机

    通过以下语句,可指定windows默认打印机
    LODOP.SET_PRINT_MODE("WINDOW_DEFPRINTER",某打印机名或序号);
    这种默认打印机是指的windows操作系统的默认打印机。
    普通指定的方法就是进入windows的控制面板,然后进入打印机设备相关选项,在windows打印机列表里,选中需要设置的默认打印机,然后右键-选设置为默认打印机。这就是windows的默认打印机,在打印机列表里带有对号的就是默认打印机。
    通过该语句,可以通过该语句修改windows默认打印机。

    windows默认打印机的修改方法(图示)

    除此之外,还有其他选择打印机方法,例如在页面获取打印机列表,让用户选择(相关博文:LODOP在页面让客户选择打印机Lodop在页面获取打印机列表 选择打印机预览C-Lodop获取打印机列表Create_Printer_ListLODOP设置打印机不存在不打印
    LODOP中还有一种是临时默认打印机,这种和windows默认打印机是不同的,注意区分
    临时默认打印机:LODOP.SELECT_PRINTER();,这种默认打印机选择后,刷新页面等操作,该默认打印机就会失效,需要重新选择。
    通过该语句设置临时默认打印机后,该页面所有没有再代码里指定打印机的打印任务,都会使用该临时默认打印机打印,刷新或关闭页面后这个临时默认打印机就失效了。

    但对于已经在任务里具体制定了打印机的,之前如果选择了临时默认打印机,LODOP和C-LODOP的表现是不同的。
    测试步骤及结果:(如代码和图,有四个方法)
    方法1:设置的windows默认打印机。
    方法2:设置页面临时默认打印机
    方法3:一个没在代码里指定具体打印机的任务。
    方法4:一个在代码里指定了xps具体打印机的任务。

    测试临时默认打印机,首先用方法2指定一下打印机,然后,在没指定的任务和指定了打印机的任务分别查看当前打印机。
    LODOP效果:
    1.没在代码指定具体打印机的,是选择的临时默认打印机。
    2.在代码指定了具体的xps打印机的,是xps打印机。
    C-LODOP效果:
    1.没在代码指定具体打印机的,是选择的临时默认打印机;
    2.在代码指定了具体的xps打印机的,还是选择的临时默认打印机。
    注意:也就是c-lodop中,页面指定了临时默认打印机,即使在代码里重新指定新的打印机,也是没有效果的。

    之前有人打印机指定语句书写正确,打印机名称也对,但是就是打印机不生效,后来发现原来在指定具体的打印机之前,他先在页面选择了临时默认打印机,而且走的是c-lodop方式,所以导致怎么也不生效。
    选择了临时默认打印机,再指定打印机,相对于冲突了,c-lodop再指定没有效果,所以导致了这一现象,所以不要这样使用,选择打印机方法还很多,并有一定的优先级,后面会有博文介绍。

    如果先用这个临时默认打印机,可以不再任务指定具体的打印机语句,因为选了这个临时打印机,相当于页面所有打印任务都是这个打印机了。虽然测试再lodop中可以重新指定,但是c-lodop不行,所以如果要用这个临时默认打印机,不再后面设置指定具体的打印机语句。
    此临时打印机刷新页面关闭页面等,都会失效,所以也可以不用这种选择打印机方法

    测试代码:

    <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>
    <div id="d1">
    内容
    </div>
    <a href="javascript:prn1_preview()">设置windows默认打印机为HP....</a><br>
    <a href="javascript:prn2_preview()">页面选择临时默认打印机</a><br>
    <a href="javascript:prn3_preview()">代码不指定打印机</a><br>
    <a href="javascript:prn4_preview()">代码指定了打印机xps..</a><br>
    <script language="javascript" type="text/javascript">   
            var LODOP; //声明为全局变量 
        function prn1_preview() {//windows默认打印机
            LODOP=getLodop();  
            LODOP.PRINT_INIT("");
            if (LODOP.CVERSION) CLODOP.On_Return=function(TaskID,Value){alert(Value);};
            var strResult=LODOP.SET_PRINT_MODE("WINDOW_DEFPRINTER","HP Color LaserJet 1600 Class Driver");
            if (!LODOP.CVERSION) alert(strResult);
    
        };
        function prn2_preview() {//页面临时默认打印机
            LODOP=getLodop();  
            if (LODOP.CVERSION) {
                LODOP.On_Return=function(TaskID,Value){if(Value>=0) alert("选择成功!"); else alert("选择失败!");};
                LODOP.SELECT_PRINTER();
                return;
            };
                if (LODOP.SELECT_PRINTER()>=0) 
                alert("选择成功!"); else alert("选择失败!");
    
        };
        function prn3_preview() {//代码不指定任何打印机
            LODOP=getLodop(); 
            LODOP.PRINT_INIT("");
            LODOP.ADD_PRINT_HTM(0,0,"100%","100%",document.getElementById("d1").innerHTML);
            LODOP.PRINTA();
            //LODOP.PREVIEW();    
        };
        function prn4_preview() {//在代码指定具体的打印机
            LODOP=getLodop(); 
            LODOP.PRINT_INIT("");
            LODOP.SET_PRINTER_INDEX("Microsoft XPS Document Writer");//指定某虚拟打印机
            LODOP.ADD_PRINT_HTM(0,0,"100%","100%",document.getElementById("d1").innerHTML);
            LODOP.PRINTA();
            //LODOP.PREVIEW();    
        };
    
    </script> 
    </body>

    图示:如图,这里就不实际输出了,直接用PRINTA,这个会弹出选择打印机框,不进行修改,可以查看到当前的打印机。

     

  • 相关阅读:
    golang 内存模型
    go-设计思想
    扁平化团队的实质
    技术团队的管理体系
    技术团队的目标管理
    从0到1打造直播 App
    管理你的项目
    JavaEE开发基础
    Java调优知识汇总
    从技术走向管理读书笔记
  • 原文地址:https://www.cnblogs.com/huaxie/p/11242743.html
Copyright © 2011-2022 走看看