/// <summary> /// 根据Graphics绘制厨房单 /// </summary> protected int drawKitchenOrder(Graphics g, DineForPrinting protocol, DineMenu dineMenu, SetMealMenu setMealMenu) { PrinterGraphics printerG = new PrinterGraphics(g, protocol.PrinterFormat.PaperSize, protocol.PrinterFormat.Font, protocol.PrinterFormat.PaddingRight); printerG.DrawStringLine(dineMenu.Menu.DepartmentName, protocol.PrinterFormat.KitchenOrderFontSize); printerG.DrawStringLine($"单号: {protocol.Dine.Id}", protocol.PrinterFormat.KitchenOrderSmallFontSize); printerG.DrawStringLine($"时间: {protocol.Dine.BeginTime.ToString("M-d HH:mm")}", protocol.PrinterFormat.KitchenOrderSmallFontSize); if (dineMenu.Status == HotelDAO.Models.DineMenuStatus.Returned) { string returnStr = "退菜"; if (dineMenu.ReturnedReason != null) { returnStr += $", 理由: {dineMenu.ReturnedReason}"; } printerG.DrawStringLine(returnStr, protocol.PrinterFormat.KitchenOrderFontSize); } printerG.DrawStringLine($"餐桌: {protocol.Dine.Desk.Name}", protocol.PrinterFormat.KitchenOrderFontSize); printGrid82(printerG, new string[] { dineMenu.Menu.Name, dineMenu.Count.ToString() }, protocol.PrinterFormat.KitchenOrderFontSize); if (setMealMenu != null) { printGrid82(printerG, new string[] { $"└ {setMealMenu.Name}", setMealMenu.Count.ToString() }, protocol.PrinterFormat.KitchenOrderFontSize); } // 打印菜品的备注信息 var remarks = dineMenu.Remarks.ToList(); for (int i = 0; i < dineMenu.Remarks.Count; i++) { char tab = '├'; if (i == dineMenu.Remarks.Count - 1) { tab = '└'; } printGrid82(printerG, new string[] { $"{tab} {remarks[i].Name}", null, }, protocol.PrinterFormat.KitchenOrderFontSize); } printEnd(printerG); return(printerG.GetHeight()); }
/// <summary> /// 生成厨房单图片 /// </summary> protected Bitmap generateKitchenOrderBmp(DineForPrinting protocol, DineMenu dineMenu, SetMealMenu setMealMenu) { Bitmap bmp = new Bitmap(protocol.PrinterFormat.PaperSize, maxHeight); Graphics g = Graphics.FromImage(bmp); int realHeight = drawKitchenOrder(g, protocol, dineMenu, setMealMenu); return(cutBmp(bmp, realHeight)); }