前言
随着热敏打印机的广泛应用,需要打印的内容除了打印文字之外,还需要打印一维码、二维码、图片等,如何快速有效的打印,如何对内容进行排版。开发者往往只会用厂家提供的SDK来进行开发,很多时候都是糊里糊涂的进行一些微调达到最终的效果。这是对打印机的原理不清楚造成的,厂家也没有对此进行过多的解释,所以针对这个问题,这篇文章将从原理上帮助开发者来理解打印机
在图文排版之前需要把打印机的规格书看懂,了解打印机的基本知识
一、分辨率
在购买打印机的时候,一定要看打印机的分辨率是多少,常见的打印机分辨率有203dpi,300dpi,600dpi等。市场上的打印机以203dpi为主。
dpi 的英文是 dot per inch,也就是每英寸的点数,203dpi 也就是203点/inch,1inch=25.4mm,也就是说 203点/25.4mm, 换算下来就是 8 点/mm. 一定要记住每毫米8个点,每毫米8个点,每毫米8个点,重要的重复3遍
热敏打印机都是以点为单位来进行排版计算的
二、打印宽度
打印机的有效打印宽度和纸张宽度是不一样的。常见的小票机规格书上描述的宽度如 58mm、80mm等。 要看清楚这是纸宽,不是打印宽度,如果规格书上打印宽度写的58mm、80mm等,那一定是规格书写错了。 记住这几个值是纸宽,纸宽,纸宽。 前面规格书上写的介质宽幅和纸张宽度是一个意思,介质就是打印材质的意思。
纸张宽度=打印宽度+左右边距
纸张宽度 | 有效打印宽度 | 页边距 |
58mm | 48mm | 5mm |
80mm | 72mm | 4mm |
对应前面学的分辨率知识,如果机器是203dpi,那么对应的有效打印点数就是
有效打印宽度 | 有效打印点数 |
48mm | 384点(48*8) |
72mm | 576点(72*8) |
热敏打印机都是以点为单位来进行排版计算的,所以记住58mm打印机对应的每行有效打印点数是384点,80mm打印机对应有效点数为576点。
三、字体
我们看到规格书上写的字体种类分为3种,FontA 12*24点,FontB 9*17点,汉字24*24点。这是什么意思呢?
一般描述字体大小时,是按照 宽*高点来描述的,也就是 FontA 宽12点,高24点;FontB 宽9点,高17点;汉字 宽24点,高24点。
注意一般小票打印机使用的是点阵字体,也是等宽字体, 和我们看到的word上的一些矢量字体是不同的。有些矢量字体的 w和l宽度占用的空间宽度是不一样的。 而一般小票打印机上的 w和l占用的空间宽度是一样的。 这个你们可以实际打印看一下。 小票机一般是用的等宽字体.
四、打印指令
打印机的指令,也就是打印机的通讯协议。是上位机控制打印机操作的命令。常见的指令有ESC/POS,TSPL、ZPL、CPCL。 这些协议之所以通用,是因为规定这些指令的公司强势,哪家公司强势、产品普及率高、指令就用的更广泛。 不同的通信协议,控制打印机的语言和通讯格式会有很大不一样。 但是打印的本质是其实还是打印文字、图片、条码。所以不管指令怎么变,都是围绕打印的基本功能来描述。
五、小试牛刀
根据前面介绍的内容,我们其实可以知道。对于小票打印机而言,一个汉字等于2个字符的宽度。
58mm的打印机,一行可以打印16个汉字,32个FontA,42个FontB
80mm的打印机,一行可以打印24个汉字,48个FontA,64个FontB
不知道怎么计算的可以留言
总结
本文先介绍了打印机的基本知识,掌握了基本知识后,后面在针对具体的每种通信协议怎么控制排版再做详细的介绍