|
串口/并口/IP/USB打印控制
public static void SendPortComm(string CommPort, string CodeString) { // 送出控制合命令:例 CodeString = "27,66,3,5"; // 端口CommPort: IP地址,或COM1,..LPT1,...,\\主机名\共享名 等方式,要完整名称 // 控制指令CodeString: 字符串,用,逗号分隔 // string PrinterPort = config("CookPrinterPort"); if (CommPort.Trim() == string.Empty) return; int i; // string CodeString = "27,66,3,5"; string seperator = ","; int[] Codes = CNN.GetIntFromString(CodeString, seperator); string CommString = ""; if ((!(Codes == null)) && (Codes.Length > 0)) { for (i = 0; i <= Codes.Length - 1; i++) { CommString = CommString + (char)(Codes[i]); } } PrintComm(CommPort, CommString); } public static void PrintComm(string PrinterPort, string CommString) { // 直接打印内容 if (PrinterPort.Trim() == string.Empty) return; try { System.Net.IPAddress.Parse(PrinterPort.Trim()); tcpPrint(PrinterPort, CommString); } catch { string PortLeft3Char = PrinterPort.Substring(0, 3).ToLower(); if (PortLeft3Char == "com" || PortLeft3Char == "lpt") { NormalPrint(PrinterPort, CommString); } else { byte[] cmdBytes = Txt2Byte(CommString); WinApiPrintByte(PrinterPort, cmdBytes); } NormalPrint(PrinterPort, CommString); } } public static void PrintCode(string PrinterPort, byte[] cmdBytes) { // 直接打印内容 if (PrinterPort.Trim() == string.Empty) return; try { System.Net.IPAddress.Parse(PrinterPort.Trim()); tcpPrintCode(PrinterPort, cmdBytes); } catch { string PortLeft3Char = PrinterPort.Substring(0, 3).ToLower(); if (PortLeft3Char == "com" || PortLeft3Char == "lpt") { string CommString = ""; for (int i = 0; i < cmdBytes.Length; i++) { CommString += (char)cmdBytes[i]; } NormalPrint(PrinterPort, CommString); } else { WinApiPrintByte(PrinterPort, cmdBytes); } } } public static void NormalPrint(string PrinterPort, string CommString) { if (PrinterPort.Trim() == string.Empty) return; ComHandler m = new ComHandler(); try { m.Port = PrinterPort.Trim(); m.Open(false); m.Flush(); m.Write(CommString); // m.Write(LFeed); m.Flush(); m.Close(); } catch { // MessageBox.Show("Error in Open Label Printer Port :" + } } public static void NormalPrintTxt(string PrinterPort, string CommString) { if (PrinterPort.Trim() == string.Empty) return; ComHandler m = new ComHandler(); try { m.Port = PrinterPort.Trim(); m.Open(false); m.Flush(); m.Write(Txt2Byte(CommString)); // m.Write(LFeed); m.Flush(); m.Close(); } catch { // MessageBox.Show("Error in Open Printer Port :" + PrinterPort); } } |