diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/print/FeiPrinter.java b/cash-service/order-service/src/main/java/com/czg/service/order/print/FeiPrinter.java index 27f8ba57f..025c5e1a0 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/print/FeiPrinter.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/print/FeiPrinter.java @@ -54,8 +54,9 @@ public class FeiPrinter extends PrinterHandler implements PrinterImpl { .setCenterBold(new String[]{"", ""}) .setF(new String[]{"", ""}) .setL(new String[]{"", ""}) - .setS(new String[]{"", ""}) - .setF(new String[]{"", ""}) + .setS(new String[]{"", ""}) + .setS(new String[]{"", ""}) + .setRight(new String[]{"", ""}) .setQr(new String[]{"", ""}) .setCenter(new String[]{"", ""}) .setBold(new String[]{"", ""}); diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/print/PrinterImpl.java b/cash-service/order-service/src/main/java/com/czg/service/order/print/PrinterImpl.java index 5ef2fb493..c9c6bff30 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/print/PrinterImpl.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/print/PrinterImpl.java @@ -28,6 +28,32 @@ public interface PrinterImpl { @Data @Accessors(chain = true) class PrintSignLabel { + /** + *
:换行符 + * :切刀指令/自动走纸(主动切纸,仅限切刀打印机使用才有效果/手动撕纸设备使用该指令时为自动走纸) + * :打印LOGO指令(有该指令则会打印LOGO,设备首次使用需上传LOGO图片) + * :预留 + * :缩小字体对应24*24字体(注:默认字体大小为32*32) + * :放大字体对应48*48字体 + * :设置字体64*64且居中 + * :放大一倍对应64*64字体 + * :居中 + * :字体变高一倍 + * :字体变宽一倍 + * :二维码(单个订单,最多只能打印一个二维码) + * :数字字母混合条形码 + * :右对齐 + * :字体加粗 + * : 设置下划线打印 + * : 反白打印 + * : 字符旋转(“?”代表旋转角度) + * : 此行到下行的行间距“?”该值可自己设置(最小1,最大127,不设置则为默认) + * : 每行中文字的间距“?”该值可自己设置(最小1,最大48,不设置则为默认) + * :设置可变字体大小(x:16,24,32,48,64,72,96都可支持,如x=96则为96*96字体) + * :走纸113点 + * :切刀全切指令(只适用带切刀型设备) + * :切刀半切指令(只适用带切刀型设备) + */ private String[] center; private String[] centerBold; private String[] bold; @@ -36,6 +62,7 @@ public interface PrinterImpl { private String[] f; private String[] l; private String[] qr; + private String[] Right; private String cut; private String out; private String rs; @@ -108,7 +135,6 @@ public interface PrinterImpl { // 品名可以在一行显示,直接补足空格 title = titleAddSpace(title, b1); sb.append(getFormatLabel(title + otherStr, signLabelInfo.s)); -// sb.append(startSplitSign).append(title).append(otherStr).append(endSplitSign); } else { // 品名超出一行,进行拆分 List lines = isEn(title) @@ -119,22 +145,16 @@ public interface PrinterImpl { // 第一行拼接其它字段 String firstLine = titleAddSpace(lines.getFirst(), b1); -// sb.append(startSplitSign).append(firstLine).append(otherStr).append(endSplitSign).append("
"); - sb.append(getFormatLabel(firstLine + otherStr, signLabelInfo.s)); - sb.append(signLabelInfo.br); - // 剩余的行单独换行输出 for (int i = 1; i < lines.size(); i++) { if (i + 1 != lines.size()) { -// sb.append(signLabelInfo.getRs(1)); sb.append(getFormatLabel(titleAddSpace(lines.get(i), b1), signLabelInfo.s)); sb.append(signLabelInfo.br); } else { sb.append(getFormatLabel(titleAddSpace(lines.get(i), b1), signLabelInfo.s)); } -// sb.append(startSplitSign).append(lines.get(i)).append(endSplitSign).append("BR>"); } } sb.append(signLabelInfo.br); @@ -243,8 +263,8 @@ public interface PrinterImpl { for (OrderDetail detail : detailList) { String number = detail.getNum().stripTrailingZeros().toPlainString(); - String row = getRow(detail.getProductName(), toPlainStr(detail.getUnitPrice().toPlainString()), number, toPlainStr(detail.getPayAmount().toPlainString()) - , 18, 0, 5, 6); + String row = getRow(detail.getProductName(), toPlainStr(detail.getUnitPrice().stripTrailingZeros().toPlainString()), number, toPlainStr(detail.getPayAmount().toPlainString()) + , 18, 0, 5, 5); data.append(row); if (StrUtil.isNotBlank(detail.getSkuName())) { data.append(getFormatLabel(StrUtil.format("规格:{}", detail.getSkuName()), signLabelInfo.s)) @@ -280,14 +300,16 @@ public interface PrinterImpl { } data.append(getFormatLabel("--------------------------------", signLabelInfo.s)) .append(signLabelInfo.br); - data.append(getFormatLabel(StrUtil.format("原价: {}", toPlainStr(printInfoDTO.getOriginalAmount())), signLabelInfo.s)) - .append(signLabelInfo.br); + data.append(getFormatLabel("原价:", signLabelInfo.s)); + data.append(getFormatLabel(toPlainStr(printInfoDTO.getOriginalAmount()), signLabelInfo.Right, signLabelInfo.s)); + + data.append(signLabelInfo.br); if (ObjectUtil.isNotNull(printInfoDTO.getDiscountAmount())) { data.append(getFormatLabel(StrUtil.format("优惠金额: -{}", toPlainStr(printInfoDTO.getDiscountAmount())), signLabelInfo.s)) .append(signLabelInfo.br); } if (StrUtil.isNotBlank(printInfoDTO.getRemark())) { - data.append(getFormatLabel(StrUtil.format("备注:{}", printInfoDTO.getRemark()), signLabelInfo.l, signLabelInfo.bold)).append(signLabelInfo.br); + data.append(getFormatLabel(StrUtil.format("备注:{}", printInfoDTO.getRemark()), signLabelInfo.s)).append(signLabelInfo.br); } data.append(getFormatLabel("--------------------------------", signLabelInfo.s)).append(signLabelInfo.br); data.append(getFormatLabel(StrUtil.format("应付金额: {}", printInfoDTO.getPayAmount()), signLabelInfo.s, signLabelInfo.bold)).append(signLabelInfo.br); diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/print/YxyPrinter.java b/cash-service/order-service/src/main/java/com/czg/service/order/print/YxyPrinter.java index 4b5b18367..ce1a057bd 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/print/YxyPrinter.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/print/YxyPrinter.java @@ -58,7 +58,11 @@ public class YxyPrinter extends PrinterHandler implements PrinterImpl { .setQr(new String[]{"", ""}) .setCenter(new String[]{"", ""}) .setCenterBold(new String[]{"", ""}) + + .setRight(new String[]{"", ""}) .setRs("RS") + .setBr("
") + .setCut("") .setBold(new String[]{"", ""}); @Override