EPSON票据打印机打印LOGO图片的一种方法

之前用过一个进入点阵图模式的ESC指令来打印Logo图片,但是打印出来的效果很差劲

今天发现一种打印图片的办法打印出来的效果比较好,其过程就是先把BMP图片文件上传到打印机设备中,然后在发送一串自定义指令就可以打印出来Logo了,这里是拿EPSON打印机来举例

1. 安装打印机驱动

    因为驱动程序里面有上传BMP图片到打印机的功能,装好驱动后选择打印机右键 属性你就可以看到如下图

    EPSON票据打印机打印LOGO图片的一种方法

   点击Logo按钮即可打开logo上传程序了

  EPSON票据打印机打印LOGO图片的一种方法

  首先在这个界面点击 Open file.. 选择一张BMP格式的图片,如果提示不支持,那么请到这个网址转换一下BMP格式

  在线转换BMP格式

  EPSON票据打印机打印LOGO图片的一种方法

 这个界面是上传选项卡,key code选择 Custom,然后我们填入一个自定义Code 48,49 ,为什么要填入key Code?

 因为可以上传多张BMP图片,发送打印的时候这个key code就尤为关键了,最后就点击Upload Device,当提示成功后进入Logo Printout选项卡

 EPSON票据打印机打印LOGO图片的一种方法

 在这个界面看到了有Get key code按钮,点击这个按钮即可获取所有上传的图片的key code,获取到之后就可以选择一个key code然后点击print按钮即可打印了

2. 发送的指令

  当我点击Print按钮的时候,此时这个程序发送打印图片指令给打印机,如果程序想要调用肯定要得知发送了什么指令吧,

所以我就下载了个串口指令监听工具,监听内容如下

EPSON票据打印机打印LOGO图片的一种方法

最后得知关键是这行指令来打印图片的,其中关键的就是30,31 因为这里是十六进制的,如果把30,31转换成十进制就是 48,49

所以30,31就是key code

1B 40 1D 28 4C 06 00 30 45 30 31 01 01

 最后用代码写入一段这样的byte数组就可以打印logo了

 comm.Write(new byte[] { 0x1B, 0x40, 0x1D, 0x28, 0x4C, 0x06, 0x00, 0x30, 0x45, 0x30, 0x31, 0x01, 0x01 });

 这样的打印默认是左对齐方式,如果想要打印的图片居中,请在图片左边填补空白内容

 最后附上一张效果图

 EPSON票据打印机打印LOGO图片的一种方法