zoukankan      html  css  js  c++  java
  • 热敏打印机排版—了解打印机的基础知识

     前言

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

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


    总结

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

    读过书,去过艰苦的大西北,干过牛马活,也流浪过街头
  • 相关阅读:
    Leetcode 191.位1的个数 By Python
    反向传播的推导
    Leetcode 268.缺失数字 By Python
    Leetcode 326.3的幂 By Python
    Leetcode 28.实现strStr() By Python
    Leetcode 7.反转整数 By Python
    Leetcode 125.验证回文串 By Python
    Leetcode 1.两数之和 By Python
    Hdoj 1008.Elevator 题解
    TZOJ 车辆拥挤相互往里走
  • 原文地址:https://www.cnblogs.com/MrDing/p/15796432.html
Copyright © 2011-2022 走看看