c#网络热敏打印机 打印文本 自动切刀POS ESC
转载于:https://blog.csdn.net/weixin_30542079/article/details/97203662
转载于:https://www.cnblogs.com/soundcode/p/8109935.html
public static bool Print(string Msg, string IP ,int port) { bool b = true; string cut = ((char)29).ToString() + ((char)86).ToString() + ((char)1).ToString() + ((char)49).ToString();//发送切纸指令 //byte[] byte_cut = System.Text.Encoding.Default.GetBytes(cut); //string font = ((char)1D).ToString() + ((char)21).ToString() + ((char)01).ToString()+ ((char)10).ToString() ;//文字大小 byte[] fonts = new byte[] { 27, 82, 0 };//1D 21 选择字体 byte[] temp = new byte[] { 29, 33, 17 };//1D 21 选择字体大小,0x01放大一倍 byte[] bty_tmp = new byte[] { 29, 86, 1, 49 };//切纸 byte[] Internal = System.Text.Encoding.Default.GetBytes(((char)27).ToString() + ((char)64).ToString());//初始化打印机 System.Net.Sockets.TcpClient client = new System.Net.Sockets.TcpClient(); System.Net.Sockets.NetworkStream stream = null; //string ipPrint = ConfigurationManager.ConnectionStrings["printIP"].ConnectionString;//获取打印机名称 //string ipPrint =Common.Comm.readXml("/xml/setting.xml", "printIP");//读取xml的IP try { //client.Connect("192.168.1.77", port); client.Connect(IP, port); stream = client.GetStream(); //是否支持写入 if (!stream.CanWrite) { b = false; } Byte[] data; string outPut = Msg; outPut += "\n\n" + DateTime.Now + "\n\n\n\n\n\n"; data = data = System.Text.Encoding.Default.GetBytes(outPut); stream.Write(data, 0, data.Length);//输出文字 outPut = ""; // 一个分类打印完成后清空。切纸 //stream.Write(Internal, 0, Internal.Length); // data = System.Text.Encoding.Default.GetBytes(cut); //stream.Write(data, 0, data.Length); stream.Write(bty_tmp, 0, bty_tmp.Length); //bty_tmp = new byte[] { 29, 86, 1, 49 }; } catch (Exception ex) { //打印机缺纸或者纸匣打开时,不会出现异常,不用特殊代码判断,数据不会丢失. b = false; LogManager.GetCurrentClassLogger().LogException(LogLevel.Error, $"接受到IP({IP})的打印内容:{Msg} ", ex); } finally { LogManager.GetCurrentClassLogger().Log(LogLevel.Info, $"接受到IP({IP})的打印内容:{Msg} "); stream.Close(); stream.Dispose(); client.Close(); } return b; }

浙公网安备 33010602011771号