zuoxiao
2024-03-04 275fbc47873d5c4f78a57b4fa58a08e2e7af2dc2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
/**
* JIUI V1 打印服务
* AIDL Version: 2.1
*/
 
package woyou.aidlservice.jiuiv5;
 
import woyou.aidlservice.jiuiv5.ICallback;
import android.graphics.Bitmap;
import com.dayu.recharge.bean.TransBean;
 
interface IWoyouService
{
    /**
    * 打印机固件升级(只供系统组件调用,开发者调用无效)
    * @param buffer
    * @param size
    * @param filename
    * @param iapInterface
    */
    void updateFirmware();
 
    /**
    * 打印机固件状态
    * return:   0--未知, A5--bootloader, C3--print
    */
    int getFirmwareStatus();
 
    /**
    * 取WoyouService服务版本
    */
    String getServiceVersion();
 
    /**
     * 初始化打印机,重置打印机的逻辑程序,但不清空缓存区数据,因此
     * 未完成的打印作业将在重置后继续
     * @param callback 回调
     * @return
     */
    void printerInit(in ICallback callback);
 
    /**
    * 打印机自检,打印机会打印自检页
    * @param callback 回调
    */
    void printerSelfChecking(in ICallback callback);
 
    /**
    * 获取打印机板序列号
    */
    String getPrinterSerialNo();
 
    /**
    * 获取打印机固件版本号
    */
    String getPrinterVersion();
 
    /**
    * 获取打印机型号
    */
    String getPrinterModal();
 
    /**
    * 获取打印头打印长度
    */
    void getPrintedLength(in ICallback callback);
 
    /**
     * 打印机走纸(强制换行,结束之前的打印内容后走纸n行)
     * @param n:    走纸行数
     * @param callback  结果回调
     * @return
     */
    void lineWrap(int n, in ICallback callback);
 
    /**
    * 使用原始指令打印
    * @param data            指令
    * @param callback  结果回调
    */
    void sendRAWData(in byte[] data, in ICallback callback);
 
    /**
    * 设置对齐模式,对之后打印有影响,除非初始化
    * @param alignment:    对齐方式 0--居左 , 1--居中, 2--居右
    * @param callback  结果回调
    */
    void setAlignment(int alignment, in ICallback callback);
 
    /**
    * 设置打印字体, 对之后打印有影响,除非初始化
    * (目前只支持一种字体"gh",gh是一种等宽中文字体,之后会提供更多字体选择)
    * @param typeface:        字体名称
    */
    void setFontName(String typeface, in ICallback callback);
 
    /**
    * 设置字体大小, 对之后打印有影响,除非初始化
    * 注意:字体大小是超出标准国际指令的打印方式,
    * 调整字体大小会影响字符宽度,每行字符数量也会随之改变,
    * 因此按等宽字体形成的排版可能会错乱
    * @param fontsize:    字体大小
    */
    void setFontSize(float fontsize, in ICallback callback);
 
    /**
    * 打印文字,文字宽度满一行自动换行排版,不满一整行不打印除非强制换行
    * @param text:    要打印的文字字符串
    */
    void printText(String text, in ICallback callback);
 
    /**
    * 打印指定字体的文本,字体设置只对本次有效
    * @param text:            要打印文字
    * @param typeface:        字体名称(目前只支持"gh"字体)
    * @param fontsize:        字体大小
    */
    void printTextWithFont(String text, String typeface, float fontsize, in ICallback callback);
 
    /**
    * 打印表格的一行,可以指定列宽、对齐方式
    * @param colsTextArr   各列文本字符串数组
    * @param colsWidthArr  各列宽度数组(以英文字符计算, 每个中文字符占两个英文字符, 每个宽度大于0)
    * @param colsAlign            各列对齐方式(0居左, 1居中, 2居右)
    * 备注: 三个参数的数组长度应该一致, 如果colsText[i]的宽度大于colsWidth[i], 则文本换行
    */
    void printColumnsText(in String[] colsTextArr, in int[] colsWidthArr, in int[] colsAlign, in ICallback callback);
 
 
    /**
    * 打印图片
    * @param bitmap:     图片bitmap对象(最大宽度384像素,超过无法打印并且回调callback异常函数)
    */
    void printBitmap(in Bitmap bitmap, in ICallback callback);
 
    /**
    * 打印一维条码
    * @param data:         条码数据
    * @param symbology:     条码类型
    *    0 -- UPC-A,
    *    1 -- UPC-E,
    *    2 -- JAN13(EAN13),
    *    3 -- JAN8(EAN8),
    *    4 -- CODE39,
    *    5 -- ITF,
    *    6 -- CODABAR,
    *    7 -- CODE93,
    *    8 -- CODE128
    * @param height:         条码高度, 取值1到255, 默认162
    * @param width:         条码宽度, 取值2至6, 默认2
    * @param textposition:    文字位置 0--不打印文字, 1--文字在条码上方, 2--文字在条码下方, 3--条码上下方均打印
    */
    void printBarCode(String data, int symbology, int height, int width, int textposition,  in ICallback callback);
 
    /**
    * 打印二维条码
    * @param data:            二维码数据
    * @param modulesize:    二维码块大小(单位:点, 取值 1 至 16 )
    * @param errorlevel:    二维码纠错等级(0 至 3),
    *                0 -- 纠错级别L ( 7%),
    *                1 -- 纠错级别M (15%),
    *                2 -- 纠错级别Q (25%),
    *                3 -- 纠错级别H (30%)
    */
    void printQRCode(String data, int modulesize, int errorlevel, in ICallback callback);
 
    /**
    * 打印文字,文字宽度满一行自动换行排版,不满一整行不打印除非强制换行
    * 文字按矢量文字宽度原样输出,即每个字符不等宽
    * @param text:    要打印的文字字符串
    *
    */
    void printOriginalText(String text, in ICallback callback);
 
    /**
    * lib包事务打印专用接口
    * transbean        打印任务列表
    * Ver 1.8.0中增加
    */
    void commitPrint(in TransBean[] transbean, in ICallback callback);
 
    /**
    * 打印缓冲区内容
    */
    void commitPrinterBuffer();
 
    /**
    * 进入缓冲模式,所有打印调用将缓存,调用commitPrinterBuffe()后打印
    *
    * @param clean: 是否清除缓冲区内容
    *
    */
    void enterPrinterBuffer(in boolean clean);
 
    /**
    * 退出缓冲模式
    *
    * @param commit: 是否打印出缓冲区内容
    *
    */
    void exitPrinterBuffer(in boolean commit);
 
    /**
    * 打印表格的一行,可以指定列宽、对齐方式
    * @param colsTextArr   各列文本字符串数组
    * @param colsWidthArr  各列宽度权重即各列所占比例
    * @param colsAlign            各列对齐方式(0居左, 1居中, 2居右)
    * 备注: 三个参数的数组长度应该一致, 如果colsText[i]的宽度大于colsWidth[i], 则文本换行
    */
    void printColumnsString(in String[] colsTextArr, in int[] colsWidthArr, in int[] colsAlign, in ICallback callback);
 
    /**
    * 打印图片
    * @param bitmap:     图片bitmap对象(最大宽度384像素,图片超过1M无法打印)
    * @param type:      目前有两种打印方式:0、同printBitmap 1、阈值200的黑白化图片 2、灰度图片
    */
    void printBitmapCustom(in Bitmap bitmap, in int type, in ICallback callback);
}