1. lodop资料
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>