电子面单打印,因为系统版本原因,没有使用丰桥的sdk,而是通过打印控件LODOP打印,关键的是怎么生成相关数据,以及排版,因为有了德邦接口的经验,直接拿来就用,我们使用的是100x150mm规格的,以下是超完整的打印页面,没有更多的整合,基本是个人都能看懂,只需要把【】里面的内容换成相关的数据即可。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>打印顺丰物流订单</title>
<script src='CLodopfuncs.js'></script>
<script src='jquery.js'></script>
<script type="text/javascript">
//单号格式
function replaceStr(str) {
return str.replace(/(.{3})/g,'$1 ');
}
//生成条码格式,13位的加上“SF”
function generSplitMailNo(bc) {
if(bc.length >= 13)
return "SF " + replaceStr(bc);
else
return replaceStr(bc);
}
var qrcode = "MMM={'k1':'xxx','k2':'xxxx','k3':'xxx','k4':'xxx','k5':'111111111111','k6':'','k7':'xxx'}"; //母单号二维码数据
var parentNo = "111111111111"; //母单号
//替换二维码里面的单号
function generQRCode(_mailNo) {
return qrcode.replace(parentNo, _mailNo);
}
var mailNo = "111111111111,111111111112,111111111113,111111111114,111111111115";
var mailNos = mailNo.split(",");
//新建lodop打印页面,为了打印更快
function createOnePage(index) {
LODOP.NewPage();
//设置打印机
LODOP.SET_PRINTER_INDEXA(document.getElementById("Select01").value);
LODOP.SET_PRINT_PAGESIZE(0,"100mm","150mm","CreateCustomPage");
LODOP.SET_SHOW_MODE("BKIMG_WIDTH","100mm");
LODOP.SET_SHOW_MODE("BKIMG_HEIGHT","150mm");
$('#mail_no_remark').html(mailNos[index-1]);
LODOP.ADD_PRINT_TABLE("2mm","3mm","96mm","147mm", $("div#expressPrintArea").html());
//运单条码
LODOP.ADD_PRINT_BARCODE("13mm","10mm","54mm","13mm","128Auto", mailNos[index-1].length>=13? ("SF" + mailNos[index-1]) : mailNos[index-1]);
LODOP.SET_PRINT_STYLEA(0,"ShowBarText",0);
LODOP.ADD_PRINT_TEXT("26mm","4mm","20mm","20mm", index + "/5");
LODOP.SET_PRINT_STYLEA(0,"FontSize",10);
if(index != 1) {
LODOP.ADD_PRINT_TEXT("26mm","16mm","50mm","20mm", "子单号:" + generSplitMailNo(mailNos[index-1]));
LODOP.ADD_PRINT_TEXT("29mm","16mm","50mm","20mm", "母单号:" + generSplitMailNo("111111111111"));
} else
LODOP.ADD_PRINT_TEXT("26mm","16mm","50mm","20mm", "母单号:" + generSplitMailNo("111111111111"));
//二维码
LODOP.ADD_PRINT_BARCODE("65mm","38mm","26mm","26mm","QRCode", generQRCode(mailNos[index-1]));
}
function print() {
alert('准备打印,请勿关闭浏览器。');
var size = 5; //总件数
var begin = 1;
var end = 5; //总件数
//选择打印
if($('input[name="printAmount"]:checked').val() == 1) {
begin = $('#begin').val()*1;
if(begin > size) {
begin = size;
$('#begin').val(begin);
}
end = $('#end').val()*1;
if(end > size)
end = size;
size = end - begin + 1;
}
var pageSize = 10;
var page = parseInt((size-1)/pageSize) + 1;
var _index = 1;
for(i = 1; i<=page; i++) {
LODOP.PRINT_INIT("打印电子面单");
if(i==page && size%pageSize !=0) {
for(k=0; k < size % pageSize; k++) {
_index++;
createOnePage(begin + _index -2);
}
} else {
fo