热敏打印机排版—了解打印机的基础知识

 前言

        随着热敏打印机的广泛应用,需要打印的内容除了打印文字之外,还需要打印一维码、二维码、图片等,如何快速有效的打印,如何对内容进行排版。开发者往往只会用厂家提供的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  

        不知道怎么计算的可以留言


总结

        本文先介绍了打印机的基本知识,掌握了基本知识后,后面在针对具体的每种通信协议怎么控制排版再做详细的介绍

读过书,去过艰苦的大西北,干过牛马活,也流浪过街头
原文地址:https://www.cnblogs.com/MrDing/p/15796432.html