zoukankan      html  css  js  c++  java
  • LODOP设置某打印项锁定下边距

    LODOP中的打印项定位都是按照top值(顶边距),left(左边距)来决定的 ,不能直接设置某打印项的下边距。
    此外,打印项的位置还受PRINT_INTA的前两个整体偏移值,打印机可打区域的影响。
    该文测试下锁定下边距,以及锁定下边距后打印项位置是否和整体偏移,打印机可打区域等有关。

    LODOP.SET_PRINT_STYLEA(0,"Vorient",1);
    该语句用来设置锁定下边距,锁定后,切换不同纸张,该内容距离纸张下方的距离是相同的。(整体偏移和可打区域会影响,查看本博客下方)
    锁定的下边距的值是:PRINT_INITA的height-打印项的top-打印项的height=下边距

    该文锁定了一个纯文本,由于纯文本本身没有背景色,不容易看出纯文本设置的height高度,所以加了个矩形 ,矩形同样加了锁定下边距。
    矩形和纯文本都锁定下边距20mm。

    前面还有一个不锁定下边距的纯文本和矩形对照,两组纯文本和实心矩形的参数是一样的,打印项的顶边距都是20mm,高度都是40mm。

    测试1:(xps虚拟打印机,A4纸张,纸高297mm,无整体偏移)
    PRINT_INTA的top:0mm
    PRINT_INTA的height:50mm
    打印项top:20mm
    打印项height:10mm

    未锁定下边距的:距离纸张上方:20mm,距离纸张下方:297mm-20mm-10mm=267mm
    锁定下边距的:距离纸张上方:267mm,距离纸张下方:297mm-267mm-10mm=20mm

    测试2:(同上,不换参数,换纸张,A6纸张,纸高148mm)
    未锁定下边距的:距离纸张上方:20mm,距离纸张下方:148mm-20mm-10mm=118mm
    锁定下边距的:距离纸张上方:118mm,距离纸张下方:148mm-118mm-10mm=20mm

    结果:不设置下边距锁定,换纸张大小,距离纸张上方不变。
    设置下边距锁定,换纸张大小,距离纸张下方不变

    测试3修改参数(设置整体向下偏移20mm,其余同测试1,纸张A4高297mm)
    未锁定下边距的:距离纸张上方:40mm(20的INITA的整体偏移值+打印项top值),距离纸张下方:297mm-40mm=257mm
    锁定下边距的:距离纸张上方:287mm,距离纸张下方:297mm-287mm-10mm=0mm
    结果:设置整体偏移值后,该页所有打印项均偏移,包括固定下边距也会偏移。

    测试4,(其余同测试3,换带可打区域的打印机)
    未锁定下边距的:距离纸张上方:40mm(20的INITA的整体偏移值+打印项top值),距离纸张下方:297mm-40mm=257mm(默认以可打区域为基点,在不加以纸张为基点的情况下)
    锁定下边距的:距离纸张上方:278mm+4.2mm=282.2(4.2是可打区域的上边距),距离纸张下方:297mm-282.2mm-10mm=4.8mm(可打区域的下边距4.8mm)
    结果:默认以可打区域为基点,锁定的下边距也是根据的可打区域。

    最后结果(测试3是距离纸张下方0mm,测试4是距离可打区域下方0mm,距离纸张下方有可打区域边距值):
    整体偏移会影响锁定的下边距 ,锁定的下边距默认是以可打区域为基点的。

    测试代码:

    <a href="javascript:p1();">锁定下边距</a>
    <script language="javascript" src="LodopFuncs.js"></script>
    <script>
    var LODOP;
    function p1(){
        LODOP=getLodop();
        LODOP.PRINT_INITA("0mm","0mm","200mm","50mm","任务名");
        LODOP.ADD_PRINT_SHAPE(4,"20mm","0mm","40mm","10mm",0,1,"#FF80FF");
        LODOP.ADD_PRINT_TEXT("20mm","0mm","40mm","10mm","这是没锁定下边距的");
        LODOP.ADD_PRINT_SHAPE(4,"20mm","0mm","40mm","10mm",0,1,"#FFFF80");
        LODOP.SET_PRINT_STYLEA(0,"Vorient",1);
        LODOP.ADD_PRINT_TEXT("20mm","0mm","40mm","10mm","这是一个文本");
        LODOP.SET_PRINT_STYLEA(0,"Vorient",1);
        LODOP.PRINT_DESIGN();
    };
    //锁定到的下边距为50mm-20mm-10mmm
    //PRINT_INITA的height-打印项的top-打印项的height=下边距
    </script>
    测试1:如上代码,A4纸张
    测试2:如上代码,A6纸张
    测试3:LODOP.PRINT_INITA("20mm","0mm","200mm","50mm","任务名");,其他同测试1。
    测试4:代码同测试3,换可打区域的打印机

    图示:

  • 相关阅读:
    HDU 3507 PrintArticle (单调队列优化)
    BZOJ 1911 (特别行动队)
    POJ 3709 K-Anonymous Sequence (单调队列优化)
    邓_php面试【002】——完整版
    邓_正则表达式
    邓_PHP面试2
    邓_PHP面试【001】
    网站大全
    Jquery 获取对象的几种方式介绍
    邓_Jquery测试题
  • 原文地址:https://www.cnblogs.com/huaxie/p/11977685.html
Copyright © 2011-2022 走看看