lodop web打印控件

2015 / 05 / 24 打印

1. lodop资料

  1. lodop官网
  2. 使用样例
  3. 使用手册
  4. 收费购买

2.项目中的实际用法

  • 例子页面

    <%@ page language="java" contentType="text/html; charset=utf-8"
      pageEncoding="utf-8"%>
     <%@taglib uri="/struts-tags"  prefix="s"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <base href="<%=basePath%>">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>打印面单</title>
    <script language="javascript" src="js/LodopFuncs.js"></script>
    <script language="javascript" src="js/jquery.min.js"></script>
    <script language="javascript" src="js/plane.js"></script>
    </head>
    <body>
      <button id="printCt" onclick="plane.print(0);">打印预览 </button>
      <button id="printRm" onclick="plane.print(1);"> 打印维护</button>
      <div style="width:100%">
          <object id="LODOP_X" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" width='680' height='700'> 
          <embed id="LODOP_EM" TYPE="application/x-print-lodop" width='680 'height='650'  PLUGINSPAGE="install_lodop32.exe"></embed>
          </object>
      </div>
    
      <script language="javascript" type="text/javascript"> 
      var orderJson = '${orderListJson}';//后端request代入返回的json字符
      var orderData =(new Function("","return "+orderJson))();//把字符转换成json对象
      window.onload = function(){  
          plane.createYtRm().print(1);//页面加载完成指挥 设置圆通热敏 然后开启打印设置
      };
    </script>
    </body>
    </html>
  • planejs

    //打印类
    //全局变量,打印的控制对象
    var LODOP;
    function plane(){
    }
    //圆通传统的打印方法
    plane.prototype.createYtCt =function(){
         LODOP=getLodop(document.getElementById('LODOP_X'),document.getElementById('LODOP_EM'));  //获取打印对象,就是页面的object
          LODOP.PRINT_INIT("打印圆通传统面单");//打印队列的任务名字
          LODOP.SET_PRINT_STYLEA('All','Deleted',1);//清除所有的打印元素
    
          //orderData 前端的json对象
          for(var index in orderData){
              var order = orderData[index];
              LODOP.NEWPAGEA();//强制分页
    
              //下面就是布局了 可以在控件的设计打印页面做好布局 然后再复制进来 替换一下变量。
              //ADD_PRINT_TEXT添加文本
              LODOP.ADD_PRINT_TEXT(89,113,75,20,order.sender_name);
              LODOP.ADD_PRINT_TEXT(209,157,168,26,order.sender_mobile);
              LODOP.ADD_PRINT_TEXT(177,90,236,25,order.sender_address);
              LODOP.ADD_PRINT_TEXT(103,456,75,20,order.receiver_name);
              LODOP.ADD_PRINT_TEXT(179,409,244,25,order.receiver_address);
              LODOP.ADD_PRINT_TEXT(209,498,171,26,order.receiver_phone);
    
              //LODOP.ADD_PRINT_TEXT(272,71,164,40,"内件品名");
              //LODOP.ADD_PRINT_TEXT(272,270,100,20,"内件数量");
              LODOP.ADD_PRINT_TEXT(157,454,80,20,order.receiver_prov);
              LODOP.ADD_PRINT_TEXT(157,565,54,20,order.receiver_city);
              LODOP.ADD_PRINT_TEXT(157,652,54,20,order.receiver_area);
              LODOP.ADD_PRINT_BARCODE(31,400,214,60,"Code39",order.tms_billcode);
              LODOP.SET_PRINT_STYLE("FontSize","18");
              LODOP.ADD_PRINT_TEXT(395,221,138,30,order.tms_billcode);
    
              LODOP. SET_PRINT_PAGESIZE (0, 0, 0,"A4");//设置纸张为A4(按操作系统定义的A4尺寸),纵向打印
              LODOP.SET_SHOW_MODE("PREVIEW_IN_BROWSE",1); //预览界面内嵌到页面内
              LODOP.SET_SHOW_MODE("SETUP_IN_BROWSE",1);//打印维护界面是否内嵌到网页内部。
              LODOP.SET_SHOW_MODE("DESIGN_IN_BROWSE",1);//在设计模式是否嵌入到网页内部
              LODOP.SET_SHOW_MODE("SETUP_ENABLESS","11111111000000");//隐藏关闭(叉)按钮
              LODOP.ADD_PRINT_SETUP_BKIMG("<img border='0' src='images/print/ytkd2010b.jpg'>");//设置背景图
              LODOP.SET_SHOW_MODE("BKIMG_IN_PREVIEW",true); //打印预览时包含背景图
              LODOP.SET_SHOW_MODE("HIDE_QBUTTIN_PREVIEW",true);//隐藏预览窗口的关闭按钮
          //    LODOP.SET_PREVIEW_WINDOW(1,2,0,0,0,"");
          }
          return this;
      };
    
      plane.prototype.createYtRm =function(){
             LODOP=getLodop(document.getElementById('LODOP_X'),document.getElementById('LODOP_EM'));  
              LODOP.PRINT_INITA("打印圆通热敏面单2");
              LODOP.SET_PRINT_STYLEA('All','Deleted',1);
              LODOP. SET_PRINT_PAGESIZE (1,1000,1500,"");//设置纸张大小 10mm*15mm 纵向打印
              for(var index in orderData){
                  var order = orderData[index];
                  LODOP.NEWPAGEA();
    
                  var pname='';
                  for(orderitem in order.orderItemsList){
                      var item = order.orderItemsList[orderitem];
                      pname+=item.item_name;
                  }
                  //设计页面 有点长。
                  LODOP.SET_PRINT_STYLE("FontSize",10);
                  LODOP.ADD_PRINT_RECT(2,16,362,26,0,1);
                  LODOP.ADD_PRINT_TEXT(4,151,218,20,"上联:此联由圆通速递留存");
                  LODOP.SET_PRINT_STYLEA(0,"FontSize",11);
                  LODOP.SET_PRINT_STYLEA(0,"Bold",1);
                  LODOP.ADD_PRINT_LINE(30,223,67,224,0,1);
                  LODOP.ADD_PRINT_BARCODE(33,20,147,35,"128Auto",order.tms_billcode);
                  LODOP.ADD_PRINT_LINE(69,9,70,374,0,1);
                  LODOP.ADD_PRINT_TEXT(71,10,26,70,"收 件 人");
                  LODOP.ADD_PRINT_TEXTA("address",76,52,307,35,order.receiver_prov+order.receiver_city+order.receiver_area+order.receiver_address);
                  LODOP.ADD_PRINT_TEXT(116,50,52,25,"邮编:");
                  LODOP.ADD_PRINT_TEXT(116,200,56,25,"电话:");
                  LODOP.ADD_PRINT_LINE(304,42,70,43,0,1);
                  LODOP.ADD_PRINT_TEXT(457,45,167,20,"订单号:"+order.order_code);
                  LODOP.ADD_PRINT_TEXT(147,47,177,20,"订单号:"+order.order_code);
                  LODOP.ADD_PRINT_TEXT(116,124,52,25,order.receiver_postcode);
                  LODOP.ADD_PRINT_TEXT(116,258,90,25,order.receiver_phone);
                  LODOP.ADD_PRINT_LINE(145,0,144,375,0,1);
                  LODOP.ADD_PRINT_TEXT(480,45,166,20,"发件人:"+order.sender_name);
                  LODOP.ADD_PRINT_TEXT(144,228,107,20,"收件人签名");
                  LODOP.SET_PRINT_STYLEA(0,"Bold",1);
                  LODOP.ADD_PRINT_TEXT(175,50,167,20,"发货单号:"+order.tms_billcode?order.tms_billcode:'');
                  LODOP.ADD_PRINT_TEXT(161,229,81,20,"证件号");
                  LODOP.ADD_PRINT_LINE(173,46,172,226,0,1);
                  LODOP.ADD_PRINT_LINE(305,226,145,227,0,1);
                  LODOP.ADD_PRINT_LINE(198,42,197,222,0,1);
                  LODOP.ADD_PRINT_TEXT(174,280,95,20,"年   月   日");
                  LODOP.ADD_PRINT_TEXT(186,10,26,73,"详 细 内 容");
                  LODOP.ADD_PRINT_TEXT(280,46,75,20,"数量:");
                  LODOP.ADD_PRINT_TEXT(203,48,166,62,"内容品名:"+pname);
                  LODOP.ADD_PRINT_TEXT(281,137,75,20,"重量:");
                  LODOP.ADD_PRINT_LINE(276,44,275,224,0,1);
                  LODOP.ADD_PRINT_LINE(194,225,193,375,0,1);
                  LODOP.ADD_PRINT_TEXT(245,232,141,56,"圆通速递将快件送达收件人地址,经收件人或收件人(寄件人)允许...(省略)");
                  LODOP.SET_PRINT_STYLEA(0,"FontSize",9);
                  LODOP.ADD_PRINT_LINE(306,5,305,377,0,1);
                  LODOP.ADD_PRINT_LINE(243,226,242,371,0,1);
                  LODOP.ADD_PRINT_TEXT(194,225,133,20,"代收人姓名(签字):");
                  LODOP.SET_PRINT_STYLEA(0,"Bold",1);
                  LODOP.ADD_PRINT_TEXT(211,229,81,20,"证件号");
                  LODOP.ADD_PRINT_TEXT(222,280,95,20,"年   月   日");
                  LODOP.ADD_PRINT_RECT(308,16,362,26,0,1);
                  LODOP.ADD_PRINT_TEXT(311,144,225,20,"下联:此联由收件人留存");
                  LODOP.SET_PRINT_STYLEA(0,"FontSize",11);
                  LODOP.SET_PRINT_STYLEA(0,"Bold",1);
                  LODOP.ADD_PRINT_IMAGE(338,30,263,46,"<img src='images/print/yt_logo.png'/>");
                  LODOP.SET_PRINT_STYLEA(0,"Stretch",2);
                  LODOP.ADD_PRINT_LINE(385,7,384,374,0,1);
                  LODOP.ADD_PRINT_TEXT(390,10,26,58,"收 件 人");
                  LODOP.ADD_PRINT_TEXT(474,11,26,71,"详细内容");
                  LODOP.ADD_PRINT_TEXTA("address",388,48,307,35,order.receiver_prov+order.receiver_city+order.receiver_area+order.receiver_address);
                  LODOP.ADD_PRINT_LINE(563,43,383,44,0,1);
                  LODOP.ADD_PRINT_TEXT(426,54,52,25,"邮编:");
                  LODOP.ADD_PRINT_TEXT(426,125,52,25,order.receiver_postcode);
                  LODOP.ADD_PRINT_TEXT(425,193,56,25,"电话:");
                  LODOP.ADD_PRINT_TEXT(426,262,90,25,order.receiver_phone);
                  LODOP.ADD_PRINT_LINE(456,1,455,373,0,1);
                  LODOP.ADD_PRINT_TEXT(502,45,161,58,"发件地址:"+order.sender_prov+order.sender_city+order.sender_area+order.sender_address);
                  LODOP.ADD_PRINT_TEXT(546,57,159,20,"电话: "+order.sender_mobile);
                  LODOP.ADD_PRINT_LINE(480,43,479,215,0,1);
                  LODOP.ADD_PRINT_LINE(570,217,455,218,0,1);
                  LODOP.ADD_PRINT_TEXT(460,225,141,56,"此运单仅供圆通速递签约客户使用,相关责任义务以双方合作合同为...(省略)");
                  LODOP.SET_PRINT_STYLEA(0,"FontSize",9);
                  LODOP.ADD_PRINT_IMAGE(512,219,158,84,"<img src='images/print/zy_logo.jpg'/>");
                  LODOP.SET_PRINT_STYLEA(0,"Stretch",2);
                  LODOP.ADD_PRINT_RECT(1,1,378,566,0,1);
                  LODOP.ADD_PRINT_LINE(502,43,501,218,0,1);
    
                  LODOP.SET_SHOW_MODE("PREVIEW_IN_BROWSE",1); //预览界面内嵌到页面内
                  LODOP.SET_SHOW_MODE("SETUP_IN_BROWSE",1);//打印维护界面是否内嵌到网页内部。
                  LODOP.SET_SHOW_MODE("DESIGN_IN_BROWSE",1);
                  LODOP.SET_SHOW_MODE("BKIMG_IN_PREVIEW",true);
                  LODOP.SET_SHOW_MODE("HIDE_QBUTTIN_PREVIEW",true);
              }
              return this;
          };
          plane.prototype.print=function(type){
              if(type==0)
                  LODOP.PREVIEW();//预览界面
              else if(type==1)
                  LODOP.PRINT_SETUP();        //设置界面
              else if(type==2)
                  LODOP.PRINT_DESIGN();    //设计界面
          }
          var plane = new plane();

主要是引入下面的object插件,PLUGINSPAGE="install_lodop32.exe"代表如果没有安装插件,那么会从这个路径下载.

<object id="LODOP_X" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" width='680' height='700'> 
    <embed id="LODOP_EM" TYPE="application/x-print-lodop" width='680 'height='650'  PLUGINSPAGE="install_lodop32.exe"></embed>
</object>