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


     前言

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

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


    总结

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

    读过书,去过艰苦的大西北,干过牛马活,也流浪过街头
  • 相关阅读:
    使用dbms_metadata.get_ddl遇到ORA-31603
    oracle得到建表语句
    Linux性能优化和监控系列(一)——top工具
    Oracle在Linux下的性能优化
    地址跳转问题
    无法对 数据库'UDS' 执行 删除,因为它正用于复制
    [.net 多线程]SpinWait
    [.net 多线程 ]ReaderWriterLock
    [.net 多线程]Barrier
    [.net 多线程]CountdownEvent
  • 原文地址:https://www.cnblogs.com/MrDing/p/15796432.html
Copyright © 2020-2023  润新知