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#串口通信 实现打印功能

做个打印的小例子,实现串口通信,打印、关闭串口、打印功能。 .CS文件 using System; using System.Collections.Generic; using Syst...
  • Jane0418
  • Jane0418
  • 2015年03月13日 15:55
  • 3134

c#网口 并口打印文字图片实例

  • 2014年01月04日 14:15
  • 613KB
  • 下载

C#操作TMPOS58串口打印机一些心得

本人开发一套中小酒店使用的餐饮管理软件,应客户需求,给后厨房添加打印机。前台下单的时候要给后厨房自动发送厨房菜品名称,数量,桌号,下单时间。这里有如下的技术问题:1-串口打印机状态的判定,非常重要。打...
  • compassion
  • compassion
  • 2008年08月02日 17:02
  • 2548

POS58热敏打印解决方法

POS58热敏打印 现在我正在做一个C#Winform的项目,其中想打印小票就和超市的那种效果差不多的,用的打印机是POS58,指令支持ESC/POS;接口是USB接口,我该怎么和打印机通信并控制打...
  • kuui_chiu
  • kuui_chiu
  • 2014年01月23日 21:53
  • 3101

POS打印机控制命令说明

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

关于pos打印机通过tcp/ip操作打印指令集

电脑通(过串口服务器的ip地址)将打印命令-->串口服务器-->串口服务器通过串口将电脑发送的ESC/POS指令传给终端pos打印机,执行打印命令。已经实现了直接通过端口发送指令,现在的问题是怎样通过...
  • suyingsoft
  • suyingsoft
  • 2017年04月19日 12:59
  • 644

POS58打印机的操作

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

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

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

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

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

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

iamlaosong文 虽然XP已经退出历史舞台,但仍然有很多人在使用。现在的情况是有一台网络打印机,注意是带网口的那种打印机(连接电脑的共享打印机比较容易连接,但使用打印机的时候这台电脑需要开着,比...
  • iamlaosong
  • iamlaosong
  • 2017年08月02日 11:28
  • 447
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#利用pos命令操作网口打印机的方法
举报原因:
原因补充:

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