/// <summary> /// 前台打印 /// </summary> /// <param name="order"></param> /// <param name="socket"></param> private void ReceptionPrint(Order order, Socket socket) { var bufferArr = new List <byte[]>(); // 打印当日序号 bufferArr.Add(PrinterCmdUtils.AlignCenter()); bufferArr.Add(PrinterCmdUtils.FontSizeSetBig(4)); bufferArr.Add(TextToByte("#" + order.Identifier)); bufferArr.Add(PrinterCmdUtils.FontSizeSetBig(2)); bufferArr.Add(TextToByte("简单猫")); bufferArr.Add(PrinterCmdUtils.NextLine()); // 打印小票类别 bufferArr.Add(PrinterCmdUtils.AlignLeft()); bufferArr.Add(PrinterCmdUtils.FontSizeSetBig(1)); bufferArr.Add(TextToByte("前台小票")); bufferArr.Add(PrinterCmdUtils.NextLine()); // 分隔 bufferArr.Add(PrinterCmdUtils.SplitLine("-", Format)); bufferArr.Add(PrinterCmdUtils.NextLine()); // 备注 if (!string.IsNullOrEmpty(order.Remark)) { bufferArr.Add(PrinterCmdUtils.FontSizeSetBig(2)); bufferArr.Add(TextToByte($"备注:{order.Remark}")); bufferArr.Add(PrinterCmdUtils.NextLine()); bufferArr.Add(PrinterCmdUtils.FontSizeSetBig(1)); bufferArr.Add(PrinterCmdUtils.NextLine()); } // 商户名称 bufferArr.Add(PrinterCmdUtils.AlignCenter()); bufferArr.Add(PrinterCmdUtils.FontSizeSetBig(2)); bufferArr.Add(TextToByte(ApplicationObject.App.Business.Name)); bufferArr.Add(PrinterCmdUtils.NextLine()); bufferArr.Add(PrinterCmdUtils.AlignLeft()); bufferArr.Add(PrinterCmdUtils.FontSizeSetBig(1)); bufferArr.Add(PrinterCmdUtils.NextLine()); // 下单时间 bufferArr.Add(TextToByte($"下单时间:{order.PayTime:yyyy-MM-dd HH:mm:ss}")); bufferArr.Add(PrinterCmdUtils.NextLine()); // 订单编号 bufferArr.Add(TextToByte($"订单编号:{order.OrderCode}")); bufferArr.Add(PrinterCmdUtils.NextLine()); // 商品分隔 bufferArr.Add(PrinterCmdUtils.SplitText("-", "购买商品", Format)); bufferArr.Add(PrinterCmdUtils.NextLine()); // 打印商品 bufferArr.Add(PrinterCmdUtils.FontSizeSetBig(2)); foreach (var product in order.Products) { var buffer = ProductLine(product, 2); buffer.ForEach(a => { bufferArr.Add(a); bufferArr.Add(PrinterCmdUtils.NextLine()); }); } bufferArr.Add(PrinterCmdUtils.FontSizeSetBig(1)); // 分隔 bufferArr.Add(PrinterCmdUtils.SplitText("-", "其他", Format)); bufferArr.Add(PrinterCmdUtils.NextLine()); // 包装费 if (order.PackagePrice.HasValue) { bufferArr.Add(PrintLineLeftRight("包装费", double.Parse(order.PackagePrice + "") + "")); bufferArr.Add(PrinterCmdUtils.NextLine()); } // 配送费 bufferArr.Add(PrintLineLeftRight("配送费", double.Parse(order.Freight + "") + "")); bufferArr.Add(PrinterCmdUtils.NextLine()); // 满减活动打印 if (order.SaleFullReduce != null) { bufferArr.Add(PrintLineLeftRight(order.SaleFullReduce.Name, "-¥" + double.Parse(order.SaleFullReduce.ReduceMoney + "") + "")); bufferArr.Add(PrinterCmdUtils.NextLine()); } // 优惠券打印 if (order.SaleCouponUser != null) { bufferArr.Add(PrintLineLeftRight(order.SaleCouponUser.Name, "-¥" + order.SaleCouponUser.Value + "")); bufferArr.Add(PrinterCmdUtils.NextLine()); } // 订单金额 bufferArr.Add(PrinterCmdUtils.AlignRight()); bufferArr.Add(TextToByte("实付:")); bufferArr.Add(PrinterCmdUtils.FontSizeSetBig(2)); bufferArr.Add(TextToByte(order.Price + "元")); bufferArr.Add(PrinterCmdUtils.FontSizeSetBig(1)); bufferArr.Add(PrinterCmdUtils.NextLine()); bufferArr.Add(PrinterCmdUtils.AlignLeft()); // 分隔 bufferArr.Add(PrinterCmdUtils.SplitLine("*", Format)); bufferArr.Add(PrinterCmdUtils.NextLine()); // 地址 bufferArr.Add(PrinterCmdUtils.FontSizeSetBig(2)); bufferArr.Add(TextToByte(order.ReceiverAddress)); bufferArr.Add(PrinterCmdUtils.NextLine()); bufferArr.Add(TextToByte(order.Phone)); bufferArr.Add(PrinterCmdUtils.NextLine()); bufferArr.Add(TextToByte(order.ReceiverName)); bufferArr.Add(PrinterCmdUtils.NextLine()); // 切割 bufferArr.Add(PrinterCmdUtils.FeedPaperCutAll()); // 打印 bufferArr.ForEach(a => socket.Send(a)); }