zoukankan      html  css  js  c++  java
  • C# 实现Epson热敏打印机打印 Pos机用

        public class EpsopnPrinter
        {

    //打印文字(端口号 字符)
            public static string PrintString(int Port, string val)
            {
                System.IO.Ports.SerialPort sp = new System.IO.Ports.SerialPort();
                sp.PortName = "COM" + Port.ToString();
                try
                {
                    sp.Open();
                }
                catch
                {
                    return "端口被占用";
                }
                List<byte> data = new List<byte>();
                string[] lines = val.Split('\n');
                for (int i = 0; i < lines.Length; i++)
                {
                    byte[] content = System.Text.Encoding.Default.GetBytes(lines[i].Replace("\r", ""));
                    byte[] wapbt ={ 0x0a };
                    data.AddRange(content);
                    data.AddRange(wapbt);
                }
                byte[] cutbt={0x1d,0x56,0x42,0x11};
                data.AddRange(cutbt);
                byte[] databt = data.ToArray();
                sp.Write(databt, 0, databt.Length);
                sp.Close();
                return null;
            }

    //测试打印机是否接在这个端口
            public static bool PrintTest(int Port)
            {
                System.IO.Ports.SerialPort sp = new System.IO.Ports.SerialPort();
                sp.PortName = "COM" + Port.ToString();
                sp.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(sp_DataReceived);
                try
                {
                    sp.Open();
                }
                catch
                {
                    return false;
                }
                Recived = false;
                byte[] testbt={0x1D,0x49,0x01};
                sp.Write(testbt, 0, testbt.Length);
                System.Threading.Thread.Sleep(100);
                sp.Close();
                return Recived;
            }

            static bool Recived = false;

       //主要是在从COM端口中接收数据时触发
            static void sp_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
            {
                Recived = true;
            }
        }

  • 相关阅读:
    2016-10-17: source insight插件
    Reactor模式通俗解释
    2016-09-19: linux后台运行
    2016-08-16: 检测函数是否存在的C++模板
    2016-08-16: copy-and-swap
    2016-08-15:从YUV420P中提取指定大小区域
    2016-08-15: C++ traits
    2016-08-05:samba服务器配置
    LINQ 根据指定属性名称对序列进行排序
    Resharper
  • 原文地址:https://www.cnblogs.com/zahxz/p/2811537.html
Copyright © 2011-2022 走看看