C#利用pos命令操作网口打印机的方法

原创 2011年01月09日 15:57:00

使用POS命令操作网口打印机的好处在于免驱动并且打印速度较快.

方法一使用TcpClient类

关键代码

  Int32 port = 9100;
  string bigFont =((char)27).ToString() + ((char)33).ToString() + ((char)213).ToString();//放大字体       
            TcpClient client = new TcpClient();
            try
            {
                client.Connect("172.30.168.100", port);

                Byte[] data = System.Text.Encoding.Default.GetBytes(bigFont);
                NetworkStream stream = client.GetStream();
                stream.Write(data, 0, data.Length);

                data = System.Text.Encoding.Default.GetBytes(bigFont);
                stream.Write(data, 0, data.Length);
                data = System.Text.Encoding.Default.GetBytes("打印机测试/n");
                stream.Write(data, 0, data.Length);
                data = System.Text.Encoding.Default.GetBytes("-             -/n");
                stream.Write(data, 0, data.Length);
                data = System.Text.Encoding.Default.GetBytes("-             -/n");
                stream.Write(data, 0, data.Length);
                stream.Close();
               
            }
            catch (Exception ex)
            {

                //如果打印机没开或者异常,在此处增加处理代码,我通常是把异常数据放到一个DataTable中,加个Timer来判断打印机正常就把

                //数据发给打印机并从表中移除.

                //打印机缺纸或者纸匣打开时,不会出现异常,不用特殊代码判断,数据不会丢失.
            }
            finally
            {
                client.Close();
            }

//-------------------------------------------------------------------------------------------------------------------------------------------

方法二使用Socket类

    Socket sendSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            try
            {
                sendSocket.Connect("172.30.168.100", 9100);

                byte[] buffer = Encoding.Default.GetBytes(bigFont);

                sendSocket.Send(buffer);
                buffer = Encoding.Default.GetBytes("测试打印机/n");
                sendSocket.Send(buffer);
                sendSocket.Shutdown(SocketShutdown.Both);
             
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                sendSocket.Close();
            }

这两种方法均可实现免驱网口打印.

相关文章推荐

C# 画条形码

using System; using System.Collections.Generic; using System.Linq; using System.Web; using Syste...

.net redis数据缓存(二) redis操作List集合带分页

redis net

POS打印机控制命令说明

一、命令字注意事项:1、控制字是十六进制的数,所以字母是不分大小写,字母包括:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。一般用两位表示,不足两位时前面补零,例如:3F和0A。2、...

POS58打印机的操作

在销售终端中,小票打印总是必不可少的。 下面记录一段使用C#简单的实现打印的方法 首先安装pos58的驱动,我这里使用的是usb转串口线 using System; us...

Java实现控制网口打印机并完成丢单重打机制

在餐饮行业中普遍使用的点菜等系统中,打印单子是一项最基本的功能。在餐饮中,一般采用的都是POS打印机。但是,在很多点菜系统中,丢单是一件很头痛的事情。本文就如何用java实现绕过驱动控制打印并实现丢单...

XP如何连接带网口的共享打印机

iamlaosong文 虽然XP已经退出历史舞台,但仍然有很多人在使用。现在的情况是有一台网络打印机,注意是带网口的那种打印机(连接电脑的共享打印机比较容易连接,但使用打印机的时候这台电脑需要开着,比...

利用树莓派完成POS58打印机的无驱动打印(初学者)

导语:网上有很多文章介绍树莓派不用驱动直接用USB接口的各类热敏打印机,但是由于硬件环境和Linux版本不同,很难有一篇文章能够完整地讲述如何无驱动打印(我就是因为网上的一篇文章方法有缺陷足足浪费了一...

C#版OPOS打印(基于北洋OPOS SDK二次开发包,支持EPSON和北洋、佳博、商祺等支持标准ESC/POS指令的POS打印机)

 C#版OPOS打印(基于北洋OPOS SDK二次开发包,支持EPSON和北洋、佳博、商祺等支持标准ESC/POS指令的POS打印机) 收藏  C#版OPOS打印基于北洋OPOS SDK二次开发包,支...
  • rise51
  • rise51
  • 2011年04月02日 21:58
  • 3770

C#版OPOS打印(基于北洋OPOS SDK二次开发包,支持EPSON和北洋、佳博、商祺等支持标准ESC/POS指令的POS打印机)

C#版OPOS打印 基于北洋OPOS SDK二次开发包,支持EPSON和北洋、佳博、商祺等支持标准ESC/POS指令的POS打印机支持并口,串口,网口,USB口,驱动方式等多种端口支持开关钱箱支...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#利用pos命令操作网口打印机的方法
举报原因:
原因补充:

(最多只允许输入30个字)