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 网络链接 打印 图片 (一)相关推荐

  1. C# 热敏打印机 Socket 网络链接 打印 图片 (二)

    1 IPAddress ip = IPAddress.Parse("192.168.1.212"); 2 IPEndPoint iport = new IPEndPoint(ip, ...

  2. esc pos java打印图片_android 调用蓝牙打印机(ESC/POS 热敏打印机)打印小票和图片...

    [实例简介]其中对蓝牙配对和连接打印功能进行了封装,可以快速实现蓝牙打印功能 [实例截图] [核心代码] package com.xmwdkk.boothprint; import android.M ...

  3. 使用Dev C++进行Windows socket网络编程,需链接lws2_32库

    背景 在我们使用Dev C++进行C语言编程时,如果我们引入的库是C语言标准库,那我们是不要在编译器选项中进行额外的设置的,但是如果我们使用的是一些不是C语言标准库,那我们可能就需要在编译器选择中进行 ...

  4. C# 热敏打印机 小票打印机 打印图片

    最近一直在研究并口小票打印机打印图片问题,这也是第一次和硬件打交道,不过还好,最终成功了. 这是DEMO的窗体: 下面是打印所需要调用的代码: class LptControl { private s ...

  5. uniapp调试ESC指令热敏打印机 打印图片 以及 打印途中报10007特性不支持解决方案

    图片需要通过 canvas进行处理 预先在canvas上绘制然后读取图片 打印途中报 10007 特性不支持 解决方案 可以看文章最后的描述 设置图片 chooseImage() {this.clea ...

  6. socket网络间通信初识

    NSOperation: 1. 指定同一时间最大执行的操作数 queue.max-- 2. 设定队列中的任务时间的依赖关系 task1 依赖于 task2: task2 -> task1 3. ...

  7. Python面向对象进阶和socket网络编程

    写在前面 为什么坚持?想一想当初: 一.面向对象进阶 - 1.反射补充 - 通过字符串去操作一个对象的属性,称之为反射: - 示例1: class Chinese:def __init__(self, ...

  8. socket网络编程 java_Java Web 基础(一) 基于TCP的Socket网络编程

    一.Socket简单介绍 Socket通信作为Java网络通讯的基础内容,集中了异常.I/O流模式等众多知识点.学习Socket通信,既能够了解真正的网络通讯原理,也能够增强对I/O流模式的理解. 1 ...

  9. BIO,Socket网络编程入门代码示例,NIO网络编程入门代码示例,AIO 网络编程

    BIO,Socket网络编程入门代码示例 1.BIO服务器端程序 package cn.itcast.bio;import java.io.InputStream; import java.io.Ou ...

  10. 1.socket网络编程

    socket网络编程总结(Linux+Windows) 理解为:套接字通信,网络通信 1.概念 1.1 局域网和广域网 局域网:局域网将一定区域内的各种计算机.外部设备和数据库连接起来形成计算机通信的 ...

最新文章

  1. Centos 不小心删除了openssl,导致无法使用sshd、yum、wget、curl 等软件的问题。。...
  2. vs开发工具报错:参数错误 异常来自 HRESULT:0x80070057 E_INVALIDARG
  3. 一个编译不能通过的问题的解决
  4. linux vsftpd用法,Linux_LINUX系统下vsftpd 命令详解,FTP命令是Internet用户使用最频 - phpStudy...
  5. zigbee ZIGBEE_FRAGMENTATION
  6. pytorch: 在训练中保存模型,加载模型
  7. react 组件构建_使用React Spring和Tinycolor构建色彩丰富的弹性组件
  8. cut out数据增强_被多种离散化场景困扰?8种python技巧!让数据处理更简单
  9. HDU 4054 Number String
  10. leetcode题库53-- 最大子序和
  11. 急速微信开通过滤方法
  12. 阿里云商标驳回复审申请收费价格、结果时间及常见问题解答
  13. 云计算技术与应用 - 了解认识云计算
  14. 普林斯顿大学计算机科学排名,普林斯顿大学研究生计算机系统专业排名
  15. PCA与2DPCA及2D-2DPCA零基础理解(下)
  16. 主体阶段钢筋工程、模板工程、混凝土、管线预埋施工要点都有哪些?
  17. 基本软件开发模型:瀑布模型、V型模型、迭代模型、增量模型、螺旋模型、大爆炸模型、敏捷模型、原型模型、W模型 特点分析与总结
  18. UBports安装Arduino记录
  19. R语言多重比较示例:Bonferroni校正法和Benjamini Hochberg法
  20. 《嫌疑人X的献身》读书笔记

热门文章

  1. 最新SSCI影响因子以及分区名单
  2. 基于Arduino的桌面激光雕刻机
  3. 网络工程师还要学linux吗,网络工程师要学什么
  4. 2021美赛成绩查询入口和美赛成绩公布时间
  5. python豆瓣Top250数据分析
  6. VMware ESXi 客户端连接控制台时,提示“VMRC 控制台连接已断开...正在尝试重新连接”的解决方法
  7. 2022年Mathorcup数学建模挑战杯C题比赛心得总结(1)——A*算法的应用与优化(含Matlab代码)
  8. 埃夫特机器人离线编程软件_工业机器人离线编程与虚拟仿真软件
  9. hadoop中java部分练习_java私塾Hadoop实战-中高级部分 之 Hadoop RestFul
  10. 软件开发的文档与审查