zoukankan      html  css  js  c++  java
  • LODOP中的纯文本和超文本打印项

    LODOP中的的打印项,有超文本也有纯文本,超文本指的是用html语言,html里的标签为值的打印项,该种打印项会经过浏览器解析,LODOP本身不带解析超文本的引擎,调用的windows底层引擎,与ie浏览器一致,由于ie版本的不同,会导致解析出来的内容也可能有不同。
    如果是套打或输出小票,输出内容比较简单,一般建议使用纯文本方式,这种不受浏览器引擎的影响。

    ADD_PRINT_TEXT输出的为纯文本打印项,ADD_PRINT_HTM、ADD_PRINT_TABLE等输出的为超文本打印项。
    纯文本:
    ADD_PRINT_TEXT+ADD_PRINT_SHAPE等,通过LODOP语句输出文本,图形,线条,二维码条码等,这种方式不受浏览器引擎解析的影响。套打,小票打印,标签打印,批量打印,用这种是很好的。
    超文本:
    ADD_PRINT_HTM超文本的普通模式,输出的是解析后的超文本,ADD_PRINT_HTML输出的是超文本的图形模式,能更好的输出页面样式,但是不如普通模式清晰,ADD_PRINT_TABLE自动分页不切行,等等,有各种语句用来输出超文本,超文本解析需要浏览器引擎,因此可能造成不同客户端效果有差异。

    测试代码:

    <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(); 
            var strBodyStyle="<style>body{color:blue;}</style>";//超文本的样式来自于css样式
            LODOP.PRINT_INIT("");
            LODOP.ADD_PRINT_TEXT(4,62,150,40,"文字(纯文本)0无样式");
            LODOP.SET_PRINT_STYLE("Underline",1);//对后面两个text加下划线
            LODOP.ADD_PRINT_HTM(47,60,150,28,strBodyStyle+"<body>文字(超文本)</body>");
            LODOP.ADD_PRINT_TEXT(99,60,150,40,"文字(纯文本)1");
            LODOP.SET_PRINT_STYLEA(0,"FontName","楷体");//对纯文本1设置为楷体
            LODOP.SET_PRINT_STYLEA(0,"FontSize",11);//对纯文本1设置为字体大小11
            LODOP.ADD_PRINT_TEXT(155,62,150,40,"文字(纯文本)2");
            //LODOP.PRINT_DESIGN();
            LODOP.PREVIEW();    
        };
        function prn2_preview() {
            LODOP=getLodop(); 
            LODOP.PRINT_INIT("");
            LODOP.ADD_PRINT_TEXT(5,62,150,40,"文字纯文本换行");
            LODOP.ADD_PRINT_TEXT(50,62,150,40,"文字纯文本
    换行");//纯文本换行
            LODOP.ADD_PRINT_HTM(100,60,150,48,"<body>文字超文本换行</body>");
            LODOP.ADD_PRINT_HTM(150,60,150,48,"<body>文字超文本<br>换行</body>");//超文本换行
            //LODOP.PRINT_DESIGN();
            LODOP.PREVIEW();    
        };
    </script> 
    </body>
     

    图示:
    如图,SET_PRINT_STYLE和SET_PRINT_STYLEA,只针对纯文本有效果,SET_PRINT_STYLE添加再打印项之前,对之后的纯文本都有影响,SET_PRINT_STYLEA是设置单个纯文本的。
    超文本只能用css样式控制。
    同理,纯文本有纯文本的换行方式,超文本有超文本的,br标签这种html语言,只能针对超文本,对纯文本无效。

    单位:LODOP中定位打印项用的px是绝对单位,和超文本css样式中的px相对单位是不同的。
    如果是超文本中的css样式控制的字体大小等,如果用的px,由于是相对单位,会受分辨率的影响。
    什么是超文本中css样式中的px,就是html代码中的style样式,也就是html语言写的那种,那种是经过浏览器解析的,会受分辨率的影响。

    虽然之前的博文都有说超文本,纯文本,但是没有介绍过两种打印项,因此为避免混淆,这里说明一下。

    超文本和纯文本的区别,就是纯文本是LODOP直接输出的,而超文本则是html语言写的。

  • 相关阅读:
    hiho #1502:最大子矩阵(元素和不超过k)
    IPC 进程间通信方式——消息队列
    IPC 进程间通信方式——共享内存
    IPC 进程间通信方式——管道
    hiho #1032: 最长回文子串
    TCP超时与重传机制与拥塞避免
    C++关于构造函数 和 析构函数 能否抛出异常的讨论
    基于TCP的客户端、服务器端socket编程
    hiho #1043 : 完全背包
    hiho #1485 : hiho字符串(滑动窗口)
  • 原文地址:https://www.cnblogs.com/huaxie/p/10677369.html
Copyright © 2011-2022 走看看