1 IPAddress ip = IPAddress.Parse("192.168.1.212");
2             IPEndPoint iport = new IPEndPoint(ip, 9100);//9100为小票打印机指定端口
3             Socket soc = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
4             soc.Connect(iport);
5             bitmap = new Bitmap(@"D:\300X200.bmp");
6             soc.Send(bmpToByte(bitmap));
7             soc.Close();

 1 public static byte[] bmpToByte(Bitmap bmp)
 2         {
 3             int h = bmp.Height / 24 + 1;
 4             int w = bmp.Width;
 5             byte[][] all = new byte[2 + 2 * h + h * w][];
 6
 7             all[0] = new byte[] { 0x1B, 0x33, 0x00 };
 8
 9             Color pixelColor;
10             // ESC * m nL nH 点阵图
11             byte[] escBmp = new byte[] { 0x1B, 0x2A, 0x21, (byte)(w % 256), (byte)(w / 256) };
12
13             // 每行进行打印
14             for (int i = 0; i < h; i++)
15             {
16                 all[i * (w + 2) + 1] = escBmp;
17                 for (int j = 0; j < w; j++)
18                 {
19                     byte[] data = new byte[] { 0x00, 0x00, 0x00 };
20                     for (int k = 0; k < 24; k++)
21                     {
22                         if (((i * 24) + k) < bmp.Height)
23                         {
24                             pixelColor = bmp.GetPixel(j, (i * 24) + k);
25                             if (pixelColor.R == 0)
26                             {
27                                 data[k / 8] += (byte)(128 >> (k % 8));
28                             }
29                         }
30                     }
31                     all[i * (w + 2) + j + 2] = data;
32                 }
33                 //换行
34                 all[(i + 1) * (w + 2)] = PrinterCmdUtils.nextLine(1);
35             }
36             all[h * (w + 2) + 1] = PrinterCmdUtils.nextLine(2);
37
38             return byteMerger(all);
39         }

 1 public static byte[] byteMerger(byte[][] byteList)
 2         {
 3             int Length = 0;
 4             for (int i = 0; i < byteList.Length; i++)
 5             {
 6                 Length += byteList[i].Length;
 7             }
 8             byte[] result = new byte[Length];
 9
10             int index = 0;
11             for (int i = 0; i < byteList.Length; i++)
12             {
13                 byte[] nowByte = byteList[i];
14                 for (int k = 0; k < byteList[i].Length; k++)
15                 {
16                     result[index] = nowByte[k];
17                     index++;
18                 }
19             }
20             return result;
21         }

转自:http://www.cnblogs.com/rinack/p/4838963.html

转载于:https://www.cnblogs.com/felix-wang/p/6248088.html

C# 热敏打印机 Socket 网络链接 打印 图片 (二)相关推荐

  1. python——生成带logo的二维码图片并且保存、控制打印机打印图片二维码、整合打印(获取输入框的值)、打包成exe文件

    1.生成带logo的二维码图片并且保存 前提条件:在D盘里有logo.png的图片,生成的二维码图片在D盘里的111.png import qrcode from PIL import Image# ...

  2. Android 蓝牙二维码打印,打印图片,二维码加文字布局,蓝牙连接

    蓝牙二维码打印,工厂物料条码,绝对好用 资源下载地址:点击下载 扫描,显示蓝牙列表 public class DeviceListActivity extends AppCompatActivity ...

  3. iOS 连接打印机 ESC/POS 指令打印 打印图片二维码

    最近公司给商户做的App 允许App把卖出的商品信息通过打印机 打印标签 所以了解了一下iOS 和 打印机 之间的交互 (Ps:用的不是UIPrinter 那个扫面打印机 发送信息打印的那个框架) 主 ...

  4. 浅谈socket网络编程函数参数(二)

    bind()函数 bind()函数把一个地址族中的特定地址赋给socket. 例如对应AF_INET.AF_INET6就是把一个ipv4或ipv6地址和端口号组合赋给socket. int bind( ...

  5. .NET(C#)基于Socket编程实现平行主机之间网络通讯有图片传输的Demo演示

    本文讲下C#通过Socket编程实现平行主机之间网络通讯的详细讲解,非常不错的博文,一起来看下吧.      在程序设计中,涉及数据存储和数据交换的时候,不管是B/S还是C/S模式 ,都有这样一个概念 ...

  6. Android 实现系统打印机打印图片,文本,以及二维码生成与解析

    打码机:扫码,生成打印自定义标签   一.Android 打印机要支持,网络.WiFi :手机与打印机在同一网络下才行,本文用WiFi连接 打开系统打印服务: 设置--更多设置--打印--选择默认打印 ...

  7. Windows Socket 网络编程(二)

    来源: http://www.vckbase.com/document/viewdoc/?id=484 Windows Socket 网络编程(二) -- 套接字编程原理 作者: 冰点工作室 小鹰 [ ...

  8. java调用热敏打印机打印(包含二维码生成)

    项目中需要用到热敏打印机,并且在打印的同时,要生成二维码.并且打印,先说说二维码的生成吧 package com.jinke.util; import com.google.zxing.common. ...

  9. Python Socket网络编程(二)局域网内和局域网与广域网的持续通信

    目录 前言 IP地址 简介 公有IP 私有IP 局域网之间网络通信 前提 功能描述 源码 运行结果 局域网与广域网网络通信 前提 源码 结语 前言 本系列博客是笔者学习Python Socket的过程 ...

最新文章

  1. 概率论快速学习03:概率公理补充
  2. 2019.7.9刷题统计
  3. 递归与分治——全排列问题
  4. Linux的环境中如何生成srw-rw---- 的文件权限?
  5. linux 解压 视频插件,linux下压缩解压缩命令
  6. Linux命令第一篇
  7. R绘图字体解决方案(转)
  8. Android 手机进入不了fastboot模式的解决方案
  9. 最新达内大数据视频教程
  10. 黑苹果html5,黑苹果AppleALC声卡驱动安装使用教程 _ 黑苹果乐园
  11. 极光推送接收不到_极光推送ios接受不到通知
  12. 计算机团队霸气名称大全,霸气吃鸡游戏团队名字大全
  13. linux winqq 不能输入中文的解决办法
  14. java 判断条件_Java初学者:条件判断及其语句
  15. 为什么射极输出器的输入电阻跟负载R(L)有关?
  16. mx450属于什么档次的显卡
  17. Axure 如何在页面加载时,设置文本框的内容为当前日期
  18. 梦开始的地方 —— C语言数据在内存中的存储(整形+浮点型)
  19. selenium找到页面元素click没反应
  20. 区块链溯源相比传统追溯有什么优点?

热门文章

  1. java过滤器api_springboot集成过滤器
  2. c语言中Gretchen函数的功能,听过很多的歌的音乐达人给我推荐一下
  3. python字典查询多个值_python – 在Pandas Dataframe中查找多个字典键并返回多个匹配值...
  4. 【WebRTC---序篇】(二)Windows平台WebRTC源码编译
  5. LeetCode 662 二叉树最大宽度
  6. zybo的linux开发教程,Zybo全栈开发入门教程——连载三:创建Linux设备驱动和应用程序...
  7. 合工大850参考书_合肥工业大学计算机考研850上岸经验分享
  8. axture动画原型制作_Axure制作原型-基础操作
  9. mot数据集_谈谈ReID与MOT的关系
  10. Window10:不能建立到远程计算机的连接。你可能需要更改此连接的网络设置。