예제 #1
0
        /// <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());
        }
예제 #2
0
        /// <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));
        }