C#后台调用LPT1端口实现小票机打印方法。

 

    public class POSPrinter

    {

        const int OPEN_EXISTING = 3;



        string prnPort = "LPT1";

        [DllImport("kernel32.dll", CharSet = CharSet.Auto)]

        private static extern IntPtr CreateFile(string lpFileName,

        int dwDesiredAccess,

        int dwShareMode,

        int lpSecurityAttributes,

        int dwCreationDisposition,

        int dwFlagsAndAttributes,

        int hTemplateFile);

        public POSPrinter()

        {

        

        }

        public POSPrinter(string prnPort)

        {

            this.prnPort = prnPort;//打印机端口

        }

        public string PrintLine(string str)

        {

            IntPtr iHandle = CreateFile(prnPort, 0x50000000, 0, 0, OPEN_EXISTING, 0, 0);

            if (iHandle.ToInt32() == -1)

            {

                Console.WriteLine(iHandle.ToString());

                return "没有连接打印机或者打印机端口不是LPT1";

            }

            else

            {

                Console.WriteLine(iHandle.ToString());

                FileStream fs = new FileStream(iHandle, FileAccess.ReadWrite);

                StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default);

                sw.WriteLine("           小票单");

                sw.WriteLine();

                sw.WriteLine(str);

                sw.WriteLine("打印内容");

                sw.WriteLine("---------------------------");



                sw.Close();

                fs.Close();

                return "打印成功!";

            }

        }

    }


直接调用PrintLine();方法进行打印具体需要的参数和打印格式大家自行调整。

你可能感兴趣的:(C#)