• lodop一种导致自定义纸张无效现象的错误写法


    代码设置了自定义纸张,预览下方状态栏先的不是设置的纸张,而是诸如A4纸张等默认纸张。
    且预览的设置里是该真实打印机预览的,这种现象一般是该打印机不支持自定义纸张导致的。

    纸张设置,参考样例5 http://www.c-lodop.com/demolist/PrintSample5.html
    用xps或pdf虚拟打印机测试一下(测试可用样例5),如果虚拟打印机输出的是正确的纸张,真实打印机不是,可能是打印机不支持该自定义纸张。 选择该真实打印机,在打印预览下方状态栏查看一下纸张大小,有的打印机不支持该自定义纸张。
    样例5的步骤1输入尺寸,点预览,预览里切换不同打印机,该真实打印机不支持该自定义纸张尺寸,会不生效。

    不过目前发现,也有一种错误写法,可能会导致支持该自定义纸张,预览却显示的是A4等默认尺寸,这种现象的原因是指定打印机错误导致的。
    在打印任务内指定打印机语句,可用:
    SET_PRINTER_INDEX(oIndexOrName);按序号或名称指定打印机,选定后禁止手工重选;
    SET_PRINTER_INDEXA(IndexorName);按序号或名称指定打印机,选定后允许手工重选;

    如果把指定windows默认打印机(样例5发步骤7), LODOP.SET_PRINT_MODE("WINDOW_DEFPRINTER",打印机名称或序号);这种写到了和打印在一个任务里,误认为该语句是指定该打印任务的打印机语句,就会出现这种现象。

    如果想用语句修改windows默认打印机,应和打印任务分成两个任务,控制不同的功能,例如样例7任务内指定打印机,样例5的步骤7里的单独操作windows默认打印机。

    现象
    预览的设置是该打印机,预览下方状态栏该纸张不生效。
    (虚拟打印机也会表现为自定义纸张不生效)

    现象原因
    误认为LODOP.SET_PRINT_MODE("WINDOW_DEFPRINTER",打印机名称或序号);是在任务内指定打印机,写到了任务里,导致出现这个现象。

    测试代码 :

        <script language="javascript" src="LodopFuncs.js"></script>
      <title>Document</title>
     </head>
     <body>
    <a href="javascript:prn1_preview()">预览效果1(自定义纸张无效)</a><br>
    <a href="javascript:prn2_preview()">预览效果2(自定义纸张有效)</a><br>
    <script language="javascript" type="text/javascript">   
            var LODOP; //声明为全局变量 
        function prn1_preview() {//测试错误写法
            LODOP=getLodop(); 
            LODOP.PRINT_INIT("");
            LODOP.SET_PRINT_PAGESIZE(1,1100,2000,"");  
            LODOP.SET_PRINT_MODE("WINDOW_DEFPRINTER","Microsoft XPS Document Writer");//错误写法,测试用
            LODOP.ADD_PRINT_TEXT(0,0,100,20,"文本内容一");//然后多个ADD语句及SET语
            //LODOP.PRINT_DESIGN();
            LODOP.PREVIEW();    
        };
        function prn2_preview() {
            LODOP=getLodop(); 
            LODOP.PRINT_INIT("");
            LODOP.SET_PRINT_PAGESIZE(1,1100,2000,"");  
            LODOP.SET_PRINTER_INDEX("Microsoft XPS Document Writer");
            LODOP.ADD_PRINT_TEXT(0,0,100,20,"文本内容一");//然后多个ADD语句及SET语
            //LODOP.PRINT_DESIGN();
            LODOP.PREVIEW();    
        };
    </script> 
     </body>

    图示:

     

  • 相关阅读:
    Python全栈-第六课 学习笔记
    python基础 day27 装饰器函数classmethod、staticmethod
    python基础 day26 面向对象-super方法、封装、property装饰器、反射
    python基础 day25 面向对象-继承2
    python基础 day24 面向对象-继承1
    python基础 day23 面向对象2
    python基础 day22 面向对象
    python基础 day21 递归函数、shutil模块
    python基础 day20 re模块、带参数的装饰器
    python基础 day19 正则表达式
  • 原文地址:https://www.cnblogs.com/huaxie/p/15904660.html
Copyright © 2020-2023  润新知