最近接到一个需求,使用android发起打印任务,通过蓝牙连接打印机。条件如下:
打印机:南京富士通DPK760E,具有蓝牙功能
Android手机:普通手机,Android 4.4版本,具有蓝牙功能
具体操作:
1. 蓝牙握手
2. 建立通信连接
3. 发送打印指令
-------------------
使用官方提供的例子可以支持 第1,2步,难点时第三步了。官方提供的例子没有操作 打印的位置坐标的,经过反复功能,获得以下指令:
a. 卷纸,移动纸张操作,相当于y坐标轴,但是,这是一个相对位置,即发一次移动1厘米,而且,不可倒退。
b. 水平移动打印坐标,绝对位置,相当于移动x坐标轴
c. 打印输出文字
d. 打印结束。
-------------------
由于y轴是相对坐标,编码会很麻烦。我想到1个办法,建立所有需要打印的内容的位置描述(模板),放到一个集合中,进行排序,先按y大小升序排序,再按x升序排序。完成后,定义一个 y_cursor记录保存当前的绝对位置坐标。