C#利用pos命令操作网口打印机的方法
2011-01-09 15:57
525 查看
使用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();
}
这两种方法均可实现免驱网口打印.
方法一使用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#中利用反射操作私有字段与私有方法
- C#利用dig命令解析SRV方法的具体实现
- C#中利用反射操作私有字段与私有方法
- C#利用扩展方法,不引入新的类型,实现矩阵的操作
- C#利用com操作excel释放进程的解决方法
- c#通过txt文档利用打印机命令打印条码标签
- C#使用WinRar命令进行压缩和解压缩操作的实现方法
- C#中关于线程启动运行带多参数方法的操作
- C#操作Access数据库的方法
- C#操作XML的通用方法总结
- C#使用ESC指令控制POS打印机打印小票
- 在C#中利用Keep-Alive处理Socket网络异常断开的方法
- 利用shell命令操作Memcached
- Java+Selenium3方法篇43-利用Jexcel操作2003版本excel
- C#中常用的经典文件操作方法
- 利用C#对远程服务进行操作
- 利用spring AOP记录用户操作日志的方法示例
- C# 操作IIS方法集合
- C#操作excel(多种方法比较)
- C#下操作USB设备的方法