EPSON票据打印机打印LOGO图片的一种方法
之前用过一个进入点阵图模式的ESC指令来打印Logo图片,但是打印出来的效果很差劲
今天发现一种打印图片的办法打印出来的效果比较好,其过程就是先把BMP图片文件上传到打印机设备中,然后在发送一串自定义指令就可以打印出来Logo了,这里是拿EPSON打印机来举例
1. 安装打印机驱动
因为驱动程序里面有上传BMP图片到打印机的功能,装好驱动后选择打印机右键 属性你就可以看到如下图
点击Logo按钮即可打开logo上传程序了
首先在这个界面点击 Open file.. 选择一张BMP格式的图片,如果提示不支持,那么请到这个网址转换一下BMP格式
这个界面是上传选项卡,key code选择 Custom,然后我们填入一个自定义Code 48,49 ,为什么要填入key Code?
因为可以上传多张BMP图片,发送打印的时候这个key code就尤为关键了,最后就点击Upload Device,当提示成功后进入Logo Printout选项卡
在这个界面看到了有Get key code按钮,点击这个按钮即可获取所有上传的图片的key code,获取到之后就可以选择一个key code然后点击print按钮即可打印了
2. 发送的指令
当我点击Print按钮的时候,此时这个程序发送打印图片指令给打印机,如果程序想要调用肯定要得知发送了什么指令吧,
所以我就下载了个串口指令监听工具,监听内容如下
最后得知关键是这行指令来打印图片的,其中关键的就是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 });
这样的打印默认是左对齐方式,如果想要打印的图片居中,请在图片左边填补空白内容
最后附上一张效果图