zoukankan      html  css  js  c++  java
  • LODOP中纸张高度不定超文本和纯文本对比

    关于纸张高度不定的小票打印,建议使用纯文本进行设计,避免纸张高度引起变形,或超文本解析差异造成一些影响:
    LODOP纸张高度不定的纯文本累计高度

    上面的链接的博文里,纯文本可通过间距和高度值累计,得出最后的纸张高度,上个链接用的是默认单位,由于纸张的默认单位是0.1mm,而打印项的单位是px(不同于超文本内部的px),需要换算,这次直接用mm进行测试,更直观。

    超文本中,并不是打印项高度和间距就是纸张大小,和超文本本身的内容也有关系,而纯文本则就是打印项高度
    如图,方法1:一个超文本打印项,打印项高度设置为 30mm,实际内容小于30mm,最后的纸张高度结果是9.8mm
    方法2:一个纯文本打印项,内容是几个字,很小,设置打印项高度为30mm,最后之纸张为29.9mm,约定于时30mm,在换算误差之内,所以纯文本不是按内容而是设置的打印项高度,下方留了很多空白。
    方法:3:两个超文本打印项,最后一个超文本打印项顶边距为20mm,设置的打印项高度为30mm,最后的纸张高度是29.9mm。
    由方法1可以知道这个超文本打印项高度大约为9.8约等于10mm
    方法2的顶边距为20mm,加上打印项实际的高度9.8,20mm+9.8mm约等于29.8,和最后的29.9也差不多,属于在换算误差范围内。

    测试代码:

    <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>
    <a href="javascript:prn3_preview()">打印项两个超文本</a><br>
    <script language="javascript" type="text/javascript">   
            var LODOP; //声明为全局变量 
        function prn1_preview() {
            LODOP=getLodop(); 
            LODOP.PRINT_INIT("");
            LODOP.SET_PRINTER_INDEX("Microsoft XPS Document Writer");//指定某虚拟打印机
            LODOP.SET_PRINT_PAGESIZE(3,1200,0,"");//这里3表示纵向打印且纸高“按内容的高度”;1200表示纸宽138.5mm;0表示页底空白0mm
            LODOP.ADD_PRINT_HTM(0,0,"80mm","30mm","<body>
     HTML Demo content
     <br><font color="#FF0000">Double click me and modify...</font>
    </body>");
            LODOP.PREVIEW();//预览查看纸张高度为9.8mm    
        };
        function prn2_preview() {
            LODOP=getLodop(); 
            LODOP.PRINT_INIT("");
            LODOP.SET_PRINTER_INDEX("Microsoft XPS Document Writer");//指定某虚拟打印机
            LODOP.SET_PRINT_PAGESIZE(3,1200,0,"");//这里3表示纵向打印且纸高“按内容的高度”;1200表示纸宽138.5mm;0表示页底空白0mm
            LODOP.ADD_PRINT_TEXT(0,0,"80mm","30mm","几个字");
            LODOP.PREVIEW();//预览查看纸张高度为29,9mm,约定于30mm
        };
        function prn3_preview() {
            LODOP=getLodop(); 
            LODOP.PRINT_INIT(""); 
            LODOP.SET_PRINTER_INDEX("Microsoft XPS Document Writer");//指定某虚拟打印机
            LODOP.SET_PRINT_PAGESIZE(3,1200,0,"");//这里3表示纵向打印且纸高“按内容的高度”;1200表示纸宽138.5mm;0表示页底空白0mm
            LODOP.ADD_PRINT_HTM(0,0,"80mm","30mm","<body>
     HTML Demo content
     <br><font color="#FF0000">Double click me and modify...</font>
    </body>");
            LODOP.ADD_PRINT_HTM("20mm",0,"80mm","30mm","<body>
     HTML Demo content
     <br><font color="#FF0000">Double click me and modify...</font>
    </body>");
            LODOP.PREVIEW();//预览查看纸张高度为29.9mm    
        };
    </script> 
    </body>

    图示:
    方法1:超文本打印项高度设置的30mm,实际纸张是9.8mm
    方法2:纯文本打印项高度设置的30mm,实际纸张是29.9mm(在换算误差内)
    方法3:最后超文本打印项高度top20mm,打印项高度30mm,实际纸张不是50mm,是29.8,20mm+9.8mm(在换算误差内)
    由方法1可以知道这个超文本打印项高度大约为9.8mm。

     

  • 相关阅读:
    WINCE6.0 error C2220: warning treated as error问题解决
    GPRS连接失败问题
    wince下sourcessources.cmnMakefile.def的相关作用
    IMX515开发备忘
    WINCE补丁包下载地址
    IMX51+WINCE6.0平台缩写意义
    喵哈哈村的魔法考试 Round #1 (Div.2) ABCD
    Codeforces Round #402 (Div. 2) D
    Codeforces Round #402 (Div. 2) C
    Codeforces Round #402 (Div. 2) B
  • 原文地址:https://www.cnblogs.com/huaxie/p/11248643.html
Copyright © 2011-2022 走看看