首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#怎么驱动USB口热敏打印机

2013-07-08 
C#如何驱动USB口热敏打印机我的程序里可以支持并口打印机,也能打印小票,但是用USB口打印机就不行,打印不出

C#如何驱动USB口热敏打印机
我的程序里可以支持并口打印机,也能打印小票,但是用USB口打印机就不行,打印不出来小票,请高手们看一看,是不是需要DeviceIoControl这个类才行呀,请问如何实现。
 QtSz qtsz = new QtSz();
        string dpmc = QtSz.scmc;
        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);
                QT qt11 = new QT("LPT1");
                //string str=qt11.PrintLine("");
                IntPtr iHandle1 = CreateFile(prnPort, 0x50000000, 0, 0, OPEN_EXISTING, 0, 0);
                if (iHandle1.ToInt32() == -1)
                {
                    Console.WriteLine(iHandle1.ToString());
                    //return "没有连接打印机或者打印机端口不是LPT1";

                }

                else
                {
                    Console.WriteLine(iHandle1.ToString());

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

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

                    //sw.WriteLine(str);
                    //开钱箱指令
                    sw.Write(((char)27).ToString() + "p" + ((char)0).ToString() + ((char)60).ToString() + ((char)255).ToString());
                    //打印小票头
                    sw.Write("       \t"); sw.WriteLine(shangdianmingcheng);


                    sw.Write("       \t"); sw.WriteLine(biaotou);
                    sw.Write("电话:"); sw.WriteLine(dianhua); sw.Write("地址;"); sw.WriteLine(dizhi);
                    sw.Write("销售时间:"); sw.WriteLine(Convert.ToDateTime(this.label19.Text.Trim()));
                    sw.Write("流水号:"); sw.WriteLine(Convert.ToString(this.label3.Text.Trim()));
                    sw.WriteLine();
                    sw.WriteLine("------------------------------");
                    sw.WriteLine("商品名称   数量   单价   金额");
                    sw.WriteLine("-------------------------------");
                    sw.Close();
                    fs.Close();

                    //return "打印机连接成功";




                }

[解决办法]
估计是没有有效的打开串口吧
[解决办法]
usb安装驱动,调用默认的打印机打印 
printdocument神马的
[解决办法]
告诉你一个方法

选择 打印机属性-〉添加端口 -〉本地端口 -〉LPT2 确定
然后怎么搞 知道了吧
[解决办法]
还有一种方法

首先共享打印机 共享名 vPrint
然后 命令行 
NET USE LPT2 \\计算机名 \vPrint
虚拟LPT2完成

热点排行