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;
        }

 

posted @ 2021-04-28 11:48  烟雨画江南  阅读(614)  评论(0)    收藏  举报