diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/print/cpcl/CvtTplToCpcl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/print/cpcl/CvtTplToCpcl.java index adbd71193..41d2cbfb2 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/print/cpcl/CvtTplToCpcl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/print/cpcl/CvtTplToCpcl.java @@ -52,8 +52,8 @@ public class CvtTplToCpcl { // CpclBuilder builder = CpclBuilder.newBuilder(); - int dpi=200; - int scale=(int)dpi/96; + float dpi=200.0f; + float scale=dpi/96.0f; JSONObject tplJsonObj = XML.toJSONObject(tplXmlStr); log.info("CvtTplToCpcl==>tplJsonObj:{}",tplJsonObj); @@ -62,9 +62,9 @@ public class CvtTplToCpcl { JSONObject jobjReportTitleBand = jobjReportPage.getJSONObject("ReportTitleBand"); // 页 宽高设置 - int paperWidth = jobjReportPage.getInt("PaperWidth",76*8); - int paperHeight = jobjReportPage.getInt("PaperHeight",130*8); - CpclBuilder builder =CpclBuilder.createArea(0,dpi,paperWidth*8,paperHeight*8,1); + float paperWidth = jobjReportPage.getInt("PaperWidth",76*8); + float paperHeight = jobjReportPage.getInt("PaperHeight",130*8); + CpclBuilder builder =CpclBuilder.createArea(0,(int)dpi,(int)paperWidth*8,(int)paperHeight*8,1); JSONArray objLineArr = jobjReportTitleBand.getJSONArray("LineObject"); for (int i=0;iline:{}",item.toJSONString(0)); // int let - int x0=item.getInt("Left",0); - int y0=item.getInt("Top",0); - int x1=x0+item.getInt("Width",0); - int y1=y0+item.getInt("Height",0); - builder.line(x0*scale, y0*scale, x1*scale, y1*scale, 1); + float x0=item.getFloat("Left",0.0f)*scale; + float y0=item.getFloat("Top",0.0f)*scale; + + float x1=x0+item.getFloat("Width",0.0f)*scale; + float y1=y0+item.getFloat("Height",0.0f)*scale; + builder.line((int)x0, (int)y0, (int)x1, (int)y1, 1); } @@ -98,13 +99,14 @@ public class CvtTplToCpcl { */ JSONObject objBarcodeObject = jobjReportTitleBand.getJSONObject("BarcodeObject"); log.info("CvtTplToCpcl==>barcode:{}",objBarcodeObject.toJSONString(0)); - int barX=objBarcodeObject.getInt("Left",0); - int barY=objBarcodeObject.getInt("Top",0); - int barWidth=objBarcodeObject.getInt("Width",0); - int barHeight=objBarcodeObject.getInt("Height",0); + float barX=objBarcodeObject.getFloat("Left",0.0f)*scale; + float barY=objBarcodeObject.getFloat("Top",0.0f)*scale; + float barWidth=objBarcodeObject.getFloat("Width",0.0f)*scale; + float barHeight=objBarcodeObject.getFloat("Height",0.0f)*scale; String barText=objBarcodeObject.getStr("Expression",""); // barWidth*scale - builder.barCode(2, 0, barHeight*scale, barX*scale, barY*scale, getFormatStr("["+barText+"]",paramMap)); + builder.append("CENTER\n"); + builder.barCode(2, 0, (int)barHeight, (int)barX, (int)barY, getFormatStr("["+barText+"]",paramMap)); // Map valueMap = new HashMap<>(); // valueMap.put("name", "Alice"); @@ -122,24 +124,25 @@ public class CvtTplToCpcl { String fontName=fontStrArr[0]; String fontSizeStr=fontStrArr[1].replaceAll("pt", ""); // String fontSizeStr=fontStrArr[1]; - int fontSize=(int)Float.parseFloat(fontSizeStr.trim()); + float fontSize=Float.parseFloat(fontSizeStr.trim()); String textStr=item.getStr("Text",""); - String horzAlign=item.getStr("HorzAlign","LEFT").toUpperCase(); +// String horzAlign=item.getStr("HorzAlign","LEFT").toUpperCase(); + String horzAlign="LEFT"; boolean isBold=false; if(fontStrArr.length>=3) { String styleStr = fontStrArr[2]; - if ("style=Bold".equals(styleStr)) { + if ("style=Bold".equals(styleStr.trim())) { isBold = true; } } // 参数替换为实际的数据 - int x=item.getInt("Left",0); - int y=item.getInt("Top",0); + float x=item.getFloat("Left",0.0f)*scale; + float y=item.getFloat("Top",0.0f)*scale; int fontS=getFontSize(fontSize); - builder.text(0, fontS, x*scale, y*scale,isBold,horzAlign,getFormatStr(textStr,paramMap) ); + builder.text(0, fontS, (int)x, (int)y,isBold,horzAlign,getFormatStr(textStr,paramMap) ); } @@ -150,19 +153,19 @@ public class CvtTplToCpcl { } - private static int getFontSize(int pt){ + private static int getFontSize(float pt){ if(pt<9){ - return 0; + return 00; } - else if(pt>=9 && pt<13){ - return 1; + else if(pt>=9 && pt<12){ + return 11; } - else if(pt>=13 && pt<20){ - return 2; + else if(pt>=12 && pt<20){ + return 22; } else if(pt>=20){ - return 3; + return 33; } return 0; } @@ -191,7 +194,7 @@ public class CvtTplToCpcl { public static void main(String[] args) { - String tplFile="/Users/alan/Downloads/探路速运-130-0806【子单-无logo】 - .frx"; + String tplFile="/Users/alan/Downloads/探路速运-130-0628缅甸特快极快-英文模版(无logo).frx"; String cmd=genCmdTpl(tplFile); @@ -229,42 +232,107 @@ public class CvtTplToCpcl { String str="! 0 200 200 1040 1\n" + "PW 608\n" + - "LINE 0 0 570 0 1\n" + - "LINE 0 656 0 686 1\n" + - "LINE 0 0 0 974 1\n" + - "LINE 570 0 570 974 1\n" + - "LINE 0 426 570 426 1\n" + - "LINE 0 278 570 278 1\n" + - "LINE 0 974 570 974 1\n" + - "LINE 0 180 570 180 1\n" + - "LINE 0 646 570 646 1\n" + - "LINE 0 830 570 830 1\n" + - "LINE 366 426 366 644 1\n" + - "LINE 366 510 570 510 1\n" + - "BARCODE 128 494 1 90 34 286 T70803000126050001\n" + - "TEXT 0 28 14 834 缅H\n" + - "TEXT 0 10 30 388 T70803000126050001\n" + - "TEXT 0 9 10 756 已验视\n" + - "TEXT 0 9 10 792 已安检\n" + - "TEXT 0 8 102 652 YEE YEE TUN 09953013062\n" + - "TEXT 0 7 102 736 缅甸仰光 KYAN SITTHAR YEIKMON INDUSTRIAL NO.56&59, LAND SURVEY NO 143/1 SOUTH DAGON TOWNSHIP, YANGON, MYANMAR\n" + - "TEXT 0 17 10 192 T1\n" + - "TEXT 0 12 6 660 送达地址\n" + - "TEXT 0 8 102 698 WOORIE MJ SHIRTS CO.LTDT1\n" + - "TEXT 0 6 10 434 寄件日期:\n" + - "TEXT 0 6 10 574 打印日期/打印人/打印次数\n" + - "TEXT 0 6 98 434 2024-08-08\n" + - "TEXT 0 6 10 608 2024-08-08/李晓虎/1\n" + - "TEXT 0 11 10 468 1/2|1.2kg|0.0023方\n" + - "TEXT 0 6 370 578 【{packType}】\n" + - "TEXT 0 6 210 434 现金\n" + - "TEXT 0 6 370 528 【派送】\n" + - "TEXT 0 16 370 434 12321\n" + - "TEXT 0 20 56 48 1-2天\n" + - "TEXT 0 15 226 10 缅甸快递\n" + - "TEXT 0 15 226 90 探路特快\n" + + "LINE 0 0 594 0 1\n" + + "LINE 0 685 0 716 1\n" + + "LINE 0 0 0 1015 1\n" + + "LINE 594 0 594 1015 1\n" + + "LINE 0 444 594 444 1\n" + + "LINE 0 291 594 291 1\n" + + "LINE 0 1015 594 1015 1\n" + + "LINE 0 189 594 189 1\n" + + "LINE 0 673 594 673 1\n" + + "LINE 0 866 594 866 1\n" + + "LINE 381 444 381 673 1\n" + + "LINE 381 531 594 531 1\n" + + "CENTER\n" + + "BARCODE 128 2 0 94 35 299 T70803000126050001\n" + + "SETBOLD 1 \n" + + "CENTER\n" + + "TEXT 0 33 15 870 缅H\n" + + "SETBOLD 0 \n" + + "SETBOLD 1 \n" + + "CENTER\n" + + "TEXT 0 11 31 405 T70803000126050001\n" + + "SETBOLD 0 \n" + + "SETBOLD 1 \n" + + "LEFT\n" + + "TEXT 0 11 11 787 已验视\n" + + "SETBOLD 0 \n" + + "SETBOLD 1 \n" + + "LEFT\n" + + "TEXT 0 11 11 826 已安检\n" + + "SETBOLD 0 \n" + + "SETBOLD 1 \n" + + "LEFT\n" + + "TEXT 0 0 106 681 YEE YEE TUN 09953013062\n" + + "SETBOLD 0 \n" + + "SETBOLD 1 \n" + + "LEFT\n" + + "TEXT 0 0 106 767 缅甸仰光 KYAN SITTHAR YEIKMON INDUSTRIAL NO.56&59, LAND SURVEY NO 143/1 SOUTH DAGON TOWNSHIP, YANGON, MYANMAR\n" + + "SETBOLD 0 \n" + + "SETBOLD 1 \n" + + "CENTER\n" + + "TEXT 0 22 11 200 T1\n" + + "SETBOLD 0 \n" + + "SETBOLD 1 \n" + + "LEFT\n" + + "ML 20\n" + + "TEXT 0 22 7 689 送达地址\n" + + "ENDML\n" + + "SETBOLD 0 \n" + + "SETBOLD 1 \n" + + "LEFT\n" + + "TEXT 0 0 106 728 WOORIE MJ SHIRTS CO.LTDT1\n" + + "SETBOLD 0 \n" + + "SETBOLD 1 \n" + + "LEFT\n" + + "TEXT 0 0 11 452 寄件日期:\n" + + "SETBOLD 0 \n" + + "SETBOLD 1 \n" + + "LEFT\n" + + "TEXT 0 0 11 598 打印日期/打印人/打印次数\n" + + "SETBOLD 0 \n" + + "SETBOLD 1 \n" + + "LEFT\n" + + "TEXT 0 0 102 452 2024-08-08\n" + + "SETBOLD 0 \n" + + "LEFT\n" + + "TEXT 0 0 11 633 2024-08-08/李晓虎/1\n" + + "SETBOLD 1 \n" + + "LEFT\n" + + "TEXT 0 11 11 488 1/2|1.2kg|0.0023方\n" + + "SETBOLD 0 \n" + + "SETBOLD 1 \n" + + "LEFT\n" + + "TEXT 0 0 385 602 【{packType}】\n" + + "SETBOLD 0 \n" + + "SETBOLD 1 \n" + + "LEFT\n" + + "TEXT 0 0 220 452 现金\n" + + "SETBOLD 0 \n" + + "SETBOLD 1 \n" + + "LEFT\n" + + "TEXT 0 0 385 551 【派送】\n" + + "SETBOLD 0 \n" + + "SETBOLD 1 \n" + + "CENTER\n" + + "TEXT 0 22 385 452 12321\n" + + "SETBOLD 0 \n" + + "SETBOLD 1 \n" + + "LEFT\n" + + "TEXT 0 33 59 51 1-2天\n" + + "SETBOLD 0 \n" + + "SETBOLD 1 \n" + + "CENTER\n" + + "TEXT 0 22 236 11 缅甸快递\n" + + "SETBOLD 0 \n" + + "SETBOLD 1 \n" + + "CENTER\n" + + "TEXT 0 22 236 94 探路特快\n" + + "SETBOLD 0 \n" + "FORM\n" + - "PRINT"; + "PRINT\n" + + ""; // System.out.println(tplXmlStr); diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/utils/WaybillHelper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/utils/WaybillHelper.java index f9a164c48..1668252ce 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/utils/WaybillHelper.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/utils/WaybillHelper.java @@ -273,7 +273,7 @@ public class WaybillHelper { e.printStackTrace(); } - str=removeUnSeeChar(str); + str=str.replaceAll("\\n", ","); str=str.replaceAll("\\r", ","); @@ -281,6 +281,7 @@ public class WaybillHelper { str=str.replaceAll("\\s*", ""); str=str.replaceAll(",+", ","); str=StringUtils.removeEnd(str, ","); + str=removeUnSeeChar(str); log.error("==formatQueryValue222==>str:{}",str); }