串口/并口/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);
}

}