public static void SendToAPIPrint() { bool IsOpen = false; switch (Gattr.PortType) { case "并口": SendToLTP(); break; case "串口": System.IO.Ports.SerialPort sPort = new System.IO.Ports.SerialPort(); sPort.PortName = Gattr.PortName; sPort.BaudRate = 9600; sPort.DataBits = 8; sPort.StopBits = (StopBits)Enum.Parse(typeof(StopBits), "1"); sPort.Parity = (Parity)Enum.Parse(typeof(Parity), "1"); sPort.Handshake = (Handshake)Enum.Parse(typeof(Handshake), "1"); IsOpen = POSUtility.Instance.OpenComPort(ref sPort); sPort.Dispose(); break; case "USB": IsOpen = POSUtility.Instance.OpenUSBPort(Gattr.PortName); break; case "驱动": Gfunc.SendToPrint(); //IsOpen = POSUtility.Instance.OpenPrinter(Gattr.PortName); break; case "网口": IsOpen = POSUtility.Instance.OpenNetPort(Gattr.PortName); break; } if (IsOpen) { if (((_listWinPrtStr != null) && (_listWinPrtStr.Count != 0))) { try { //开钱箱 IntPtr res = POSUtility.POS_KickOutDrawer(0x00, 100, 100); if ((uint)res != POSUtility.Instance.POS_SUCCESS) { MessageBox.Show("开钱箱失败!指令调用返回值:" + res.ToString(), "系统提示"); LoggerHelper.Log("MsmkLogger", "开钱箱失败!指令调用返回值:" + res.ToString(), LogEnum.SysLog); } POSUtility.POS_StartDoc(); POSUtility.POS_SetMode(0x00); POSUtility.POS_SetRightSpacing(0); POSUtility.POS_SetLineSpacing(80); foreach (t_pos_printer_out _out in _listWinPrtStr) { POSUtility.POS_FeedLine(); POSUtility.POS_S_TextOut(_out.Text, 0, 1, 1, POSUtility.Instance.POS_FONT_TYPE_STANDARD, POSUtility.Instance.POS_FONT_STYLE_NORMAL); } POSUtility.POS_FeedLines(4); POSUtility.POS_Reset(); POSUtility.POS_EndDoc(); _listWinPrtStr.Clear(); } catch (Exception exception) { MessageBox.Show(exception.Message, "系统提示"); LoggerHelper.Log("MsmkLogger", "API打印报错:" + exception.Message, LogEnum.SysLog); } } //关闭端口 POSUtility.Instance.ClosePrinterPort(); } else { if (Gattr.PortType != "驱动" && Gattr.PortType != "并口") { MessageBox.Show(Gattr.PortType + "端口打印机无效!", Gattr.AppTitle); LoggerHelper.Log("MsmkLogger", Gattr.PortType + "端口打印机无效!", LogEnum.SysLog); } } }