This commit is contained in:
linfso 2024-08-10 09:46:27 +08:00
parent fe88385e48
commit a4f2c55a9e
2 changed files with 134 additions and 65 deletions

View File

@ -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;i<objLineArr.size();i++){
@ -72,11 +72,12 @@ public class CvtTplToCpcl {
log.info("CvtTplToCpcl==>line:{}",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<String, String> 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&amp;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&amp;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);

View File

@ -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);
}