text 热敏打印机_C# 热敏打印机 Socket 网络链接 打印 图片 (一)
usingSystem;usingSystem.Collections.Generic;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Net;usingSystem.Net.Sockets;namespacePOSPrinter
{///
///POSPrinter的摘要说明。///此类处理网络打印,使用了IP端口.///
public classNetPOSPrinter
{string ipPort = "127.0.0.1";publicNetPOSPrinter()
{
}public NetPOSPrinter(stringIpPort)
{this.ipPort = IpPort;//打印机端口
}///
///输出文字到打印机///
/// 要打印的内容
public void PrintLine(stringstr)
{//建立连接
IPAddress ipa =IPAddress.Parse(ipPort);
IPEndPoint ipe= new IPEndPoint(ipa, 9100);//9100为小票打印机指定端口
Socket soc = newSocket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
soc.Connect(ipe);//string str= "hello,123456789,大家好! ";
byte[] b = System.Text.Encoding.GetEncoding("GB2312").GetBytes(str);
soc.Send(b);
soc.Close();
}public voidPrintPic(Bitmap bmp)
{//把ip和端口转化为IPEndPoint实例
IPEndPoint ip_endpoint = new IPEndPoint(IPAddress.Parse(ipPort), 9100);//创建一个Socket
Socket socket = newSocket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//连接到服务器
socket.Connect(ip_endpoint);//应对同步Connect超时过长的办法,猜测应该是先用异步方式建立以个连接然后,//确认连接是否可用,然后报错或者关闭后,重新建立一个同步连接//socket.SendTimeout = 1000;//初始化打印机,并打印
Byte[] byte_send= Encoding.GetEncoding("gb18030").GetBytes("\x1b\x40");//发送测试信息
socket.Send(byte_send, byte_send.Length, 0);byte[] data = new byte[] { 0x1B, 0x33, 0x00};
socket.Send(data, data.Length,0);
data[0] = (byte)'\x00';
data[1] = (byte)'\x00';
data[2] = (byte)'\x00'; //Clear to Zero.
Color pixelColor;//ESC * m nL nH 点阵图
byte[] escBmp = new byte[] { 0x1B, 0x2A, 0x00, 0x00, 0x00};
escBmp[2] = (byte)'\x21';//nL, nH
escBmp[3] = (byte)(bmp.Width % 256);
escBmp[4] = (byte)(bmp.Width / 256);//data
for (int i = 0; i < (bmp.Height / 24) + 1; i++)
{
socket.Send(escBmp, escBmp.Length,0);for (int j = 0; j < bmp.Width; j++)
{for (int k = 0; k < 24; k++)
{if (((i * 24) + k) < bmp.Height) //if within the BMP size
{
pixelColor= bmp.GetPixel(j, (i * 24) +k);if (pixelColor.R == 0)
{
data[k/ 8] += (byte)(128 >> (k % 8));
}
}
}
socket.Send(data,3, 0);
data[0] = (byte)'\x00';
data[1] = (byte)'\x00';
data[2] = (byte)'\x00'; //Clear to Zero.
}
byte_send= Encoding.GetEncoding("gb18030").GetBytes("\n");//发送测试信息
socket.Send(byte_send, byte_send.Length, 0);
}//data
byte_send= Encoding.GetEncoding("gb18030").GetBytes("\n");//发送测试信息
socket.Send(byte_send, byte_send.Length, 0);
socket.Close();
}///
///打开钱箱///
public voidOpenCashBox()
{
IPAddress ipa=IPAddress.Parse(ipPort);
IPEndPoint ipe= new IPEndPoint(ipa, 9100);//9100为小票打印机指定端口
Socket soc = newSocket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
soc.Connect(ipe);char[] c = { Convert.ToChar(27), 'p', Convert.ToChar(0), Convert.ToChar(60), Convert.ToChar(255) };byte[] b = System.Text.Encoding.GetEncoding("GB2312").GetBytes(c);
soc.Send(b);
soc.Close();
}
}
}
text 热敏打印机_C# 热敏打印机 Socket 网络链接 打印 图片 (一)相关推荐
- C# 热敏打印机 Socket 网络链接 打印 图片 (二)
1 IPAddress ip = IPAddress.Parse("192.168.1.212"); 2 IPEndPoint iport = new IPEndPoint(ip, ...
- esc pos java打印图片_android 调用蓝牙打印机(ESC/POS 热敏打印机)打印小票和图片...
[实例简介]其中对蓝牙配对和连接打印功能进行了封装,可以快速实现蓝牙打印功能 [实例截图] [核心代码] package com.xmwdkk.boothprint; import android.M ...
- 使用Dev C++进行Windows socket网络编程,需链接lws2_32库
背景 在我们使用Dev C++进行C语言编程时,如果我们引入的库是C语言标准库,那我们是不要在编译器选项中进行额外的设置的,但是如果我们使用的是一些不是C语言标准库,那我们可能就需要在编译器选择中进行 ...
- C# 热敏打印机 小票打印机 打印图片
最近一直在研究并口小票打印机打印图片问题,这也是第一次和硬件打交道,不过还好,最终成功了. 这是DEMO的窗体: 下面是打印所需要调用的代码: class LptControl { private s ...
- uniapp调试ESC指令热敏打印机 打印图片 以及 打印途中报10007特性不支持解决方案
图片需要通过 canvas进行处理 预先在canvas上绘制然后读取图片 打印途中报 10007 特性不支持 解决方案 可以看文章最后的描述 设置图片 chooseImage() {this.clea ...
- socket网络间通信初识
NSOperation: 1. 指定同一时间最大执行的操作数 queue.max-- 2. 设定队列中的任务时间的依赖关系 task1 依赖于 task2: task2 -> task1 3. ...
- Python面向对象进阶和socket网络编程
写在前面 为什么坚持?想一想当初: 一.面向对象进阶 - 1.反射补充 - 通过字符串去操作一个对象的属性,称之为反射: - 示例1: class Chinese:def __init__(self, ...
- socket网络编程 java_Java Web 基础(一) 基于TCP的Socket网络编程
一.Socket简单介绍 Socket通信作为Java网络通讯的基础内容,集中了异常.I/O流模式等众多知识点.学习Socket通信,既能够了解真正的网络通讯原理,也能够增强对I/O流模式的理解. 1 ...
- BIO,Socket网络编程入门代码示例,NIO网络编程入门代码示例,AIO 网络编程
BIO,Socket网络编程入门代码示例 1.BIO服务器端程序 package cn.itcast.bio;import java.io.InputStream; import java.io.Ou ...
- 1.socket网络编程
socket网络编程总结(Linux+Windows) 理解为:套接字通信,网络通信 1.概念 1.1 局域网和广域网 局域网:局域网将一定区域内的各种计算机.外部设备和数据库连接起来形成计算机通信的 ...
最新文章
- Centos 不小心删除了openssl,导致无法使用sshd、yum、wget、curl 等软件的问题。。...
- vs开发工具报错:参数错误 异常来自 HRESULT:0x80070057 E_INVALIDARG
- 一个编译不能通过的问题的解决
- linux vsftpd用法,Linux_LINUX系统下vsftpd 命令详解,FTP命令是Internet用户使用最频 - phpStudy...
- zigbee ZIGBEE_FRAGMENTATION
- pytorch: 在训练中保存模型,加载模型
- react 组件构建_使用React Spring和Tinycolor构建色彩丰富的弹性组件
- cut out数据增强_被多种离散化场景困扰?8种python技巧!让数据处理更简单
- HDU 4054 Number String
- leetcode题库53-- 最大子序和
- 急速微信开通过滤方法
- 阿里云商标驳回复审申请收费价格、结果时间及常见问题解答
- 云计算技术与应用 - 了解认识云计算
- 普林斯顿大学计算机科学排名,普林斯顿大学研究生计算机系统专业排名
- PCA与2DPCA及2D-2DPCA零基础理解(下)
- 主体阶段钢筋工程、模板工程、混凝土、管线预埋施工要点都有哪些?
- 基本软件开发模型:瀑布模型、V型模型、迭代模型、增量模型、螺旋模型、大爆炸模型、敏捷模型、原型模型、W模型 特点分析与总结
- UBports安装Arduino记录
- R语言多重比较示例:Bonferroni校正法和Benjamini Hochberg法
- 《嫌疑人X的献身》读书笔记
热门文章
- 最新SSCI影响因子以及分区名单
- 基于Arduino的桌面激光雕刻机
- 网络工程师还要学linux吗,网络工程师要学什么
- 2021美赛成绩查询入口和美赛成绩公布时间
- python豆瓣Top250数据分析
- VMware ESXi 客户端连接控制台时,提示“VMRC 控制台连接已断开...正在尝试重新连接”的解决方法
- 2022年Mathorcup数学建模挑战杯C题比赛心得总结(1)——A*算法的应用与优化(含Matlab代码)
- 埃夫特机器人离线编程软件_工业机器人离线编程与虚拟仿真软件
- hadoop中java部分练习_java私塾Hadoop实战-中高级部分 之 Hadoop RestFul
- 软件开发的文档与审查