# 打印排版 >优声云打印机使用自有排版系统,不兼容其他打印排版指令 [TOC] ## 内置排版指令 >为了让开发者更加方便的使用云打印,我们在系统内定制了一批常用的排版指令 1. 独立标签 >>`<N></N><MC></MC>`应当置于整个排版的前面 | 序号 |指令 |内容 | 说明| | --- | --- | --- |--- | | 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}为条码内容,CODE128A | | 7 | 条形码 |`<BR2>`{data}`</BR2> ` |{data}为条码内容,CODE128B | | 8 | 条形码 |`<BR3>`{data}`</BR3> ` |{data}为条码内容,CODE128C | | 9 | 二维码 |`<QR>`{data}`</QR> ` |{data}为二维码扫码识别出来的内容,一般为http链接,长度不超过192字节,位置居中且不可修改 | | 10 | 换行 |`<RN> ` |指令后的内容将无条件换行打印| | 11 | 居中 |`<C>`{data}`</C> ` |{data}为居中内容| | 12 | 居右 |`<R>`{data}`</R> ` |{data}为居右内容| | 13 | 一行两列 |`<TR>`<br>`<TD>`{data1}`</TD><TD>`{data2}`</TD>`<br>`</TR> ` |{data}为两列内容| | 14 | 一行三列 |`<TR>`<br>`<TD>`{data1}`</TD><TD>`{data2}`</TD><TD>`{data3}`</TD>`<br>`</TR> ` |{data}为三列内容| | 15 | 语音提示 |`<MC>{n}</MC> ` |{n}为语音的标志, 目前支持:4:您有新的订单,5:您有新的美团外卖订单,6:您有新的饿了么外卖订单,请注意查收,7:您有客户退单,请及时处理(实际效果以打印机播报为准)| ***`<N></N><MC></MC>`应当置于整个排版的前面,注意当同时使用多个指令时,指令顺序保持一致*** 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>`<br>`<TD>`{data1}`</TD><TD>`{data2}`</TD>`<br>`</TR></S{n}> ` | {n}为实际的倍数,支持1或2 {data}为两列内容| | 4 | 一行三列加大字体 |`<S{n}><TR>`<br>`<TD>`{data1}`</TD><TD>`{data2}`</TD><TD>`{data3}`</TD>`<br>`</TR></S{n}> ` |{n}为实际的倍数,支持1或2 {data}为三列内容| **加粗标签可以和任意标签嵌套使用,使用时标签放在最外层** **内容加高标签可以和任意标签嵌套使用,使用时标签放在最外层** ## 自定义排版 > 排版的需求是个性化的,上述指令也无法完全满足开发者的需要 打印机排版参数 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> ~~~ ## 字符支持 * 常用汉字 * 标点符号 * 阿拉伯数字 * 英语字母 * 运算符号:+-×÷% * 货币符号¥ * 其余字符提供有限支持,请测试确认无误后再在生产环境使用 **不支持emoji表情符,请严格过滤菜品名称、用户备注等字段** ## 排版示例 * 美团外卖 ``` <S2><C>#1美团外卖</C></S2> <S1><C>*优声云(成都店)*</C></S1> -------------------------------- <S2><C>[预订单]</C></S2> <S2><C>--在线支付--</C></S2> <H2>送达时间:10-17 07:40</H2><RN><H2>备注:[用餐人数1人]; 多放辣 多放辣 多放辣</H2><RN>下单时间:10-17 06:51 <RN>订单编号:10187153373368819<RN>******************************** <C>-----------1号口袋-----------</C> <H2><TR><TD>豆腐花(豆腐花(加酸菜))</TD><TD>×1</TD><TD>3</TD></TR> <TR><TD>鲜肉小笼包(小笼包(加辣))</TD><TD>×1</TD><TD>7</TD></TR></H2> <B1>--------------其他--------------</B1> 餐盒费: ¥1 <RN>配送费: ¥4 <RN>折扣: ¥1 <RN>满10.0元减1.0元 <RN>******************************** 原价:15 <RN> 总价:<S2>14</S2> <RN> <S2>故宫 (芒果网咖114号机)</S2> <RN><S2>18333333333</S2> <RN><S2>谢(女士)(门店新客户)</S2><RN> ``` * 饿了么 ``` <S2><C>#1 饿了么</C></S2><S1><C>优声科技(成都店)</C></S1><S1><C>--在线支付--</C></S1><S2><C>[预订单]</C></S2><H2>送达:10-17 11:30<RN></H2>=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*<RN>下单时间:10-17 09:01<RN>订单编号:1227066340320969757<RN><H2><C>1号篮子</C><RN><TR><TD>脆笋腊肉饭</TD><TD>×1</TD><TD>21</TD></TR><TR><TD>冰红茶</TD><TD>×1</TD><TD>6</TD></TR><C>其它费用</C><RN><TR><TD>餐盒</TD><TD>×1</TD><TD>2</TD></TR></H2>********************************<RN><H2>配送费:3</H2><RN><H2>小计:32<RN></H2><H2>折扣:-14<RN></H2>********************************<RN><H2>总价:18</H2><RN><S1>天安门17楼</S1><RN><H2>丁** 182****8888</H2><RN><H2>隐私小号:13264100992,88</H2><RN> ```