打印机排版约定



一.JSON打印排版格式(票据)


属性 值类型 值说明 说明
type string title : 小票标题(居中,字体放大一倍) string
text : 行字符打印内容 值为字符串或数组
png : png图片base64编码数据或 URL下载链接 图片最大不超过6K
bmp : bitmap图片base64编码数据或 URL下载链接 图片最大不超过60K
qrcode : 二维码 最大512个字节
bc128 : 默认CODE128A
bc128a : CODE128A
bc128c : CODE128C
CODE128A最大14个数字、大写字母组合;
CODE128C在58mm打印机最多28个字符
div_line : 以’-’的行分割线 支持居中插入内容
div_star : 以’*’的行分割线 支持居中插入内容
cut : 切刀指令,对应cont全切、半切; 0:全切
1:半切
plugin : 开钱箱
align string left : 居左,默认属性
center : 居中
right : 居右
行对齐方式属性
bold boolean true : 加粗
false : 不加粗(默认属性)
字体加粗属性;不需要加粗可以不添加
size string 由两个数字组成,如”11”, type对应类型不同:text(“AB” 即设置倍宽为4倍,倍高为3倍)
         A是倍宽倍数,取值0-7,默认0
         B是倍高倍数,取值0-7,默认0
qrcode(值为“01” - “09”, 默认”04”)
bc128 (“AB” 即 A对应宽度,B对应高度)
A:条码宽度 1-6,默认2
B:代表条码高度,B=0-9,H=(b+1)*3mm,默认2
字体、二维码、条码尺寸属性
thead array/object key 表头内容
value 列宽占比
tbody array 多列表格内容
内容为数组
both_sides array 数组支持两个字符串对象(第一个字符串对象左对齐, 第二个字符串对象右对齐;如: [“收款金额”,”258.00”] ) 打印内容
cont string/array text : 可以为字符串或数组,数组支持两个字符串
对象(第一个字符串对象左对齐, 第二个字符串
打印内容对象右对齐;如: [“收款金额”,”258.00”] )
打印内容

JSON排版示例图(点击放大)

JSON实例图

二.JSON打印排版格式(标签)


属性 参数类型 说明
标签参数 SIZE Array 整个标签的尺寸:宽、高, 单位为毫米(mm) 例:"SIZE":[76, 130] 为 宽度 76mm,高度 130mm 的标签
DIRECTION Number 标签内容方向(针对出纸方向),值为 0 或 1
DENSITY Number 打印浓度: 值范围 1-15
SOUND Number 蜂鸣器响次数;可选参数,包含本参数则打印同时蜂鸣器响
打印内容
(公共属性)
label Array 标签内容 每一个元素为一个 JSON 数组单元
type string 元素类型:
"TEXT" 文本
"QRCODE" 二维码
"BC128" 条码,BC128 格式
"BAR" 线条
"BITMAP" 位图(支持)
x Number 元素在标签上水平起始坐标(左上角为坐标原点),单位为 (dot) 1mm = 8 dot
y Number 元素在标签上垂直起始坐标(左上角为坐标原点),单位为 (dot) 1mm = 8 dot
cont String 打印内容
r Number 元素旋转角度: 0 90 180 270
元素专有属性 TEXT w 宽度放大倍数,Number类型,值为 0 - 8
h 高度放大倍数,Number类型,值为 0 - 8
QRCODE "e" 二维码容错级别,默认"M" 即可 w 每个小方块的宽度,Number类型
BC128 h 条码高度,单位 dot ,Number类型 show 是否显示字符, 值为 0 / 1 narrow 条码窄线条宽度,单位 dot, 默认 1 wide 条码宽线条宽度,单位 dot, 默认 1
BAR w 线条宽度 , Number类型 h 线条高度 ,Number类型
BITMAP 支持位深度为 1 的 bmp 位图(可用Windows 自带画图工具生成),内容为图片的Base64数据


三.XML内容解析


标签对象 说明 备注
<BR> 换行符 每一行结尾均需包含换行符
<CUT> 切刀指令 带切刀机型有效
<IMG></IMG> Bitmap图片的base64编码 仅支持8位灰度位图,Base64编码后不超过6KB
<PLUGIN> 开钱箱指令 支持钱箱接口机型有效
<CB></CB> 放大1倍并居中 字符有效
<B></B> 放大一倍 字符有效
<L></L> 字体变高一倍 字符有效
<W></W> 字体变宽一倍 字符有效
<QR></QR> 二维码 单个小票仅支持一个二维码
二维码最多支持256个字符
<C></C> 行内容居中 排版默认居左,即不包含<C>及<RIGHT>标签时居左
<RIGHT></RIGHT> 行内容居右
<BOLD></BOLD> 字体加粗
<BC128_A></BC128_A> CODE128码 最多支持14个数字及大写字母组合
<BC128_C></BC128_C> CODE128码 最多支持22个纯数字

注:

  1. 内容支持UTF-8 或 GBK 编码
  2. 单个任务XML总数据不超过10KB
  3. 对齐标签<RIGHT>、<C> 可与其他标签嵌套
  4. <BR>标签总是行最后一个标签
  5. 58mm打印机单行最多32个ASCII字符或16个汉字(一个汉字占2个ASCII字符宽度),80mm 打印机单行最多48个ASCII字符或24个汉字
示例 (仅供参考)

<CB>测试打印</CB><BR>
名称            单价 数量 金额<BR>
--------------------------------<BR>
羊肉串           10.0 10 100.0<BR>
炒刀削           10.0 10 100.0<BR>
河南烩面         10.0 10 100.0<BR>
牛肉炒刀削       10.0 10 100.0<BR>
红烧狮子头       10.0 10 100.0<BR>
凉拌西红柿       10.0 10 100.0<BR>
自然羊肉盖饭     10.0 10 100.0<BR>
--------------------------------<BR>
<BOLD> 备注:爆辣</BOLD><BR>
合计:xxx.xx元<BR>送货地点:江苏省南京市<BR>
<QR><C>http://www.sw-aiot.com</C></QR><BR>
联系电话:18888888888<BR>订餐时间:2021-10-28 17:11:11<BR><CUT></CUT><BR>