最近项目需求需要打印一个小票,百度了一下,都是那几篇文章,而且都是有固定API,可以判断切纸,长度的那种.实际中我这边便携式蓝牙打印机根本就没有API,只能通过写模板,其中涉及到CPCL的模板一些用法,记录一下.
如果需要仔细研究CPCL打印机方面,请google/百度搜索 斑马CPCL说明文档.
这次弄小票的打印模板,研究了下公司maven里面bluetoothlibrary包含的ZhongTong.txt打印面单的模板.
稍微有点经验,写出来,如果下次谁还需要弄这个,至少能有个简单的说明.
模板为txt文件格式,每个参数使用 空格间隔即可.
! 0 200 200 1100 1
! => 开始标签
0 => 表示整体打印模板的偏移量
200 => 横向分辨率(每英寸的点数)(一般使用默认200即可)
200 => 竖向分辨率(同上)
1100 => 打印内容的最大高度(根据实际排版后确定,单位为mm)
1 => 每次打印的张数,默认1张/每次 就行.
PAGE-WIDTH 580
PAGE-WIDTH => 没啥好说的
580 => 模板的宽度,单位为mm
如果是模板长度还可以额外设置
PAGE-HEIGHT 1100 或 PH 1100
待确认,现在打印失效,待确定是否为打印机驱动SDK的原因
我只知道直线怎么画,虚线什么的不清楚.
举个栗子:
LINE 0 280 558 280 2
LINE => 表示为 线
0 => 起点的x坐标
280 => 起点的y坐标
558 => 终点的x坐标
280 => 终点的y坐标
2 => 线宽
TEXT 2 0 10 330 车牌号:
TEXT 2 0 100 330 [carNum]
TEXT => 表示为 文本
2 => 字体的字号(和斑马CPCL描述有出入,斑马CPCL内该行代表字体font,默认为FG,还有FN,FS,设置数字代表选取对应的字体组 )
0 => 字体的 size
10/100 => 该行文字的x坐标
330 => 该行文字的y坐标
车牌号/[carNum] => 文本内容
tips: 具体文字的x.y坐标确定后,打印,该坐标是按照一般左上角还是Android文字的左下角,待确定.
一般为正常排列,可能会涉及到角度旋转,只支持默认,90°,180°,270°,方向是 逆时针.需要字体角度旋转的,使用 TEXT90/T90,TEXT180/T180及TEXT270/T270 就行
按照公司maven库内bluetoothlibrary内包装的结果,字体大小设置分别代表的字体size为:
1 ==> 3
0 ==> 8
3,55 ==> 16
2,8 ==> 24
4 ==> 32
默认字体大小为24.
然后TEXT后第二位为对应的字号后的大小,默认为0就行.想再加大,++就行.
比如说想要设置 比常规字体大一号,且再加大,就是
TEXT 4 1 x y 例子
如果需要设置字体加粗,在该行文本前面添加:
SETBOLD 1
SETBOLD => 表示后续的内容需要加粗
1 => 加粗程度,默认不需要加粗,为0
需要注意的是: 当设置好加粗后,后续不需要加粗,需要再设置一遍 SETBOLD 0 才行.
FORM
走到下一张纸,打印标签纸定位作用(连续纸不可用)
这里说一下血的教训:
打印纸一般都属于热敏纸,按照使用途径分为连续纸和标签纸,连续纸就是哪种直接手撕,比如哪种超市小票,外卖的哪个小票那种.标签纸是自带隔断的,比如说快递面单,就是自带隔断的,通过FORM可以去寻找当前打印完成后的下一张纸.
不是标签纸,千万不要加,不是标签纸,千万不要加,不是标签纸,千万不要加.
重要的事情说3遍,
加了以后你会发现,emmm…
能给你出3~4倍长度的空白纸出来.
PRINT
这个是必须要加的,代表结束,可以开始打印了.
! 0 200 200 1100 1
PAGE-HEIGHT 1100
PAGE-WIDTH 580
LINE 0 80 558 80 2
LINE 0 280 558 280 2
LINE 0 480 558 480 2
LINE 0 780 558 780 2
LINE 0 980 558 980 2
TEXT 2 0 10 180 类型:
SETBOLD 1
TEXT 2 0 60 180 [type]
SETBOLD 2
TEXT 4 1 160 180 [typeValue]
SETBOLD 0
TEXT 2 0 290 180 线路:
TEXT 3 0 340 150 发
TEXT 3 0 340 210 到
SETBOLD 1
TEXT 2 0 375 150 [lastSite]
TEXT 2 0 375 210 [nextSite]
SETBOLD 0
TEXT 2 0 10 330 车牌号:
TEXT 2 0 10 430 总 重:
TEXT 2 0 290 330 货重:
TEXT 2 0 390 430 车重:
SETBOLD 1
TEXT 2 0 100 330 [carNum]
TEXT 2 0 100 430 [allWeigh]
TEXT 2 0 360 330 [goodsWeigh]
TEXT 2 0 460 430 [carWeigh]
SETBOLD 0
TEXT 2 0 10 530 称重/打印中心:
TEXT 2 0 10 575 称重/打印人员:
TEXT 2 0 10 630 称重时间:
TEXT 2 0 10 685 打印时间:
SETBOLD 1
TEXT 2 0 200 530 [weighSite]
TEXT 2 0 200 575 [weighPerson]
TEXT 2 0 120 630 [weighDate]
TEXT 2 0 120 685 [printDate]
SETBOLD 0
TEXT 2 0 10 870 注意事项:
SETBOLD 2
TEXT 4 1 10 930 [weighTips]
SETBOLD 0
TEXT 2 0 10 1060 装卸人员:
TEXT 2 0 290 1060 中心监督人员:
PRINT