# PrintTemplateDoc
打印模版文档

## 单位转换
    1mm = 3.78px
## 有效打印范围
    纸张大小 - 左边距（3mm）- 右边距（3mm）
## ESC/POS
### 基本计算单位：mm（毫米）
### 基本打印单位：dot（点）
    203dpi: 1mm = 8dot
    300dpi: 1mm = 12dot
### 中文编码格式：GB2312
    1个小写字母、数字、英文字符 = 1个字节
    1个中文字、大写字母 = 2个字节
### 单倍字节大小：1.25mm
    将每一个打印字符，以GB2312的编码格式转字节，单字节字符宽度为1.25mm（如：小写字母、数字、英文字符）
    ，双字节字符宽度为1.25mm * 2 = 2.5mm（如：中文字、大写英文字母）
    
### 单倍字体水平间距：0.25mm
    无论是单字节字体还是双字节字体，单倍宽字体间距都为0.25mm，多倍宽字体间距为（0.25 * 宽度倍数）mm；
    如：2倍宽字体，字体间距为：0.25 * 2 = 0.5mm
        3倍宽字体，字体间距为：0.25 * 7 = 0.75mm

### 字体打印宽度计算规则
* 1个单倍宽单字节字体（如：小写字母、数字、英文字符）的打印宽度 = 1 * 1.25 + 0.25 = 1.5mm
* 1个单倍宽双字节字体（如：中文字、大写英文字母）的打印宽度 = 2 * 1.25 + 0.25 = 2.75mm
* 1个x倍宽单字节字体（如：小写字母、数字、英文字符）的打印宽度 = x * (1.25 + 0.25) = x * 1.5mm
* 1个x倍宽双字节字体（如：中文字、大写英文字母）的打印宽度 = x * (2 * 1.25 + 0.25) = x * 2.75mm

### 打印起始位置计算规则
    基于pos打印机逐行打印原理，打印的垂直位置，只能依靠换行来实现。
    因此垂直位置不需要我们区计算，只需、也只能通过换行来调整垂直打印位置；
    水平打印起始位置，则需要我们计算：
    水平打印最小单位是：1dot
    以每行最左侧为原点（0），用距离原点的距离x（单位：mm）* 每mm对应的dot数，取整，得出水平坐标值
    ⚠️注意：多倍（x）宽字体打印，且右对齐打印时，需起始打印位置需向右偏移(x-1) * 单倍字符间距（0.25mm）的距离，保证打印内容能够右对齐
