# 打印排版 > 中午云打印机使用自有排版系统,不兼容其他打印排版指令 * [打印排版](#_0) * [内置排版指令](#_3) * [自定义排版](#_43) <span id="_3"></span> ## 内置排版指令 > 为了让开发者更加方便的使用云打印,我们在系统内定制了一批常用的排版指令 1. 独立标签 > > `<SL></SL><SC></SC><SV></SV><MS></MS><N></N>`应当置于整个排版的前面,注意当同时使用多个指令时,应严格按照上述顺序 | 序号 | 指令 | 内容 | 说明 | | --- | --- | --- | --- | | 1 | 多联次打印 | `<N>`{n}`</N>` | {n}为实际的联数,支持`[1,9]`区间整数 | | 2 | 内容加高 | `<H{n}>`{data}`</H{n}>` | {n}为实际的倍数,支持1或2,{data}为加高的内容,单行多行均有效 | | 3 | 内容加宽 | `<W{n}>`{data}`</W{n}>` | {n}为实际的倍数,支持1或2,{data}为加宽的内容,单行多行均有效 | | 4 | 内容加大 | `<S{n}>`{data}`</S{n}>` | {n}为实际的倍数,支持1或2,{data}为加大的内容,单行多行均有效 | | 5 | 内容加粗 | `<B{n}>`{data}`</B{n}>` | {n}为实际的倍数,支持1,{data}为加的内容,单行多行均有效 | | 6 | 条形码 | `<BR>`{data}`</BR>` | {data}为条码内容,13位长度,只支持数字,不足13位自动补0 | | 7 | 二维码 | `<QR>`{data}`</QR>` | {data}为二维码内容,长度不超过192字节,位置居中且不可修改 | | 8 | 换行 | `<RN>` | 指令后的内容将无条件换行打印 | | 9 | 居中 | `<C>`{data}`</C>` | {data}为居中内容 | | 10 | 居右 | `<R>`{data}`</R>` | {data}为居右内容 | | 11 | 一行两列 | `<TR>` `<TD>`{data1}`</TD><TD>`{data2}`</TD>` `</TR>` | {data}为两列内容 | | 12 | 一行三列 | `<TR>` `<TD>`{data1}`</TD><TD>`{data2}`</TD><TD>`{data3}`</TD>` `</TR>` | {data}为三列内容 | | 13 | 制表符 | `<T>` | 四字节对齐打印 | | 14 | 语音提示 | `<MS>{n}</MS>` | {n}为语音的标志, 目前支持:4:短信提示音①,5:短信提示音②,6:您有新的订单,请注意查收,7:您有客户退单,请注意查收(实际效果以打印机播报为准) | | 15 | 语音播报位置 | `<SL>{n}</SL>` | {n}为语音播报位置的标志, 目前支持:1:打印订单前播报,2:打印订单后播放 | | 16 | 语音播报重复次数 | `<SC>{n}</SC>` | {n}为语音播报次数, 支持`[1,9]`区间整数 | | 17 | 语音播报音量 | `<SV>{n}</SV>` | {n}为语音播报音量, 支持`[0,4]`区间整数 | ***`<SL></SL><SC></SC><SV></SV><MS></MS><N></N>`应当置于整个排版的前面,注意当同时使用多个指令时,应严格按照上述顺序*** \*\*`<SL></SL><SC></SC><SV></SV>`\*\*近支持Z1-WIFI,Z1-GPRS,Z1-GPRS-WIFI 2\. 嵌套标签 | 序号 | 指令 | 内容 | 说明 | | --- | --- | --- | --- | | 1 | 居中加大字体 | `<S{n}><C>`{data}`</C></S{n}>` | {n}为实际的倍数,支持1或2 {data}为居中内容 | | 2 | 居右加大字体 | `<S{n}><R>`{data}`</R></S{n}>` | {n}为实际的倍数,支持1或2 {data}为居右内容 | | 3 | 一行两列加大字体 | `<S{n}><TR>` `<TD>`{data1}`</TD><TD>`{data2}`</TD>` `</TR></S{n}>` | {n}为实际的倍数,支持1或2 {data}为两列内容 | | 4 | 一行三列加大字体 | `<S{n}><TR>` `<TD>`{data1}`</TD><TD>`{data2}`</TD><TD>`{data3}`</TD>` `</TR></S{n}>` | {n}为实际的倍数,支持1或2 {data}为三列内容 | **加粗标签可以和任意标签嵌套使用,使用时标签放在最外层** **内容加高标签可以和任意标签嵌套使用,使用时标签放在最外层** <span id="_43"></span> ## 自定义排版 > 排版的需求是个性化的,上述指令也无法完全满足开发者的需要 打印机排版参数 1. 58mm纸宽的打印机一行能容纳32个字节 2. 打印机使用gbk编码,默认大小下,汉字占用2个字节,英语字母占用1个字节,空格占用1个字节 3. 打印机字符默认居左 4. 打印机字体的宽高只能使用内置指令处理 5. 自定义只能改变字符的位置 在此基础之上,我们可以很容易自定义排版 下面以 不同字体大小下使"您好"居中 举例说明 1.默认字体大小: 目标字符占用四个字节,要使其居中 ,需要在目标字符前面添加空格 空格数 = (32(纸宽)-4(自身宽度))/2 = 14 ~~~ 您好<RN> ~~~ 2.`<S1></S1>`大小下: 目标字符占用六个字节,要使其居中 ,需要在目标字符前面添加空格 空格数 = (32(纸宽)-6(自身宽度))/2 = 13 ~~~ <S1>您好</S1><RN> ~~~ 3.`<S2></S2>`大小下: 目标字符占用八个字节,要使其居中 ,需要在目标字符前面添加空格 空格数 = (32(纸宽)-8(自身宽度))/2 = 12 ~~~ <S2>您好</S2><RN> ~~~