1# OH_Scan
2
3
4## 概述
5
6向应用提供使用CAPI访问扫描仪设备的能力。
7
8**起始版本:** 12
9
10
11## 汇总
12
13
14### 类型定义
15
16| 名称 | 描述 |
17| -------- | -------- |
18| Scan_ScannerDevice | 扫描仪设备信息。 |
19| Scan_PictureScanProgress | 图片扫描进度。 |
20| Scan_ScannerOptions | 扫描仪选项。 |
21| Scan_ScannerDiscoveryCallback | 扫描仪发现回调函数。 |
22
23
24### 枚举类型
25
26| 名称 | 描述 |
27| -------- | -------- |
28| Scan_ErrorCode | 枚举错误码。 |
29
30
31### 函数
32
33| 名称 | 描述 |
34| -------- | -------- |
35| OH_Scan_Init | 用于拉起扫描服务,初始化客户端,并建立与扫描服务的连接。 |
36| OH_Scan_StartScannerDiscovery | 用于搜索扫描仪,注册一个回调函数来处理发现的扫描仪。 |
37| OH_Scan_OpenScanner | 用于连接扫描仪。 |
38| OH_Scan_CloseScanner | 用于断开与扫描仪的连接。 |
39| OH_Scan_GetScannerParameter | 用于获取扫描仪设置选项。 |
40| OH_Scan_SetScannerParameter | 用于设置扫描仪的选项参数。 |
41| OH_Scan_StartScan | 用于启动扫描仪。 |
42| OH_Scan_CancelScan | 用于取消扫描。 |
43| OH_Scan_GetPictureScanProgress | 用于查询图片扫描进度。 |
44| OH_Scan_Exit | 用于退出扫描服务,释放客户端内存。 |
45
46
47## 类型定义说明
48
49
50### Scan_ScannerDevice
51
52**描述**
53
54扫描仪设备信息。
55
56**起始版本:** 12
57
58| 成员         | 描述     |
59| ------------ | -------- |
60| scannerId    | 扫描仪id |
61| manufacturer | 制造商   |
62| model        | 设备型号 |
63| discoverMode | 发现模式 |
64| serialNumber | 序列号   |
65
66### Scan_PictureScanProgress
67
68**描述**
69
70图片扫描进度。
71
72**起始版本:** 12
73
74| 成员     | 描述                    |
75| -------- | ----------------------- |
76| progress | 图片扫描进度,范围0~100 |
77| fd       | 图片文件句柄            |
78| isFinal  | 是否有下一张图片        |
79
80### Scan_ScannerOptions
81
82**描述**
83
84扫描仪选项。
85
86**起始版本:** 12
87
88| 成员         | 描述         |
89| ------------ | ------------ |
90| titles       | 选项标题     |
91| descriptions | 选项描述信息 |
92| ranges       | 选项范围     |
93| optionCount  | 选项个数     |
94
95### Scan_ScannerDiscoveryCallback
96
97**描述**
98
99扫描仪发现回调函数。
100
101**起始版本:** 12
102
103| 参数        | 描述       |
104| ----------- | ---------- |
105| devices     | 扫描仪设备 |
106| deviceCount | 设备个数   |
107
108
109
110## 枚举类型说明
111
112
113### Scan_ErrorCode
114
115**描述**
116
117枚举错误码。
118
119**起始版本:** 12
120
121| 枚举值 | 描述 |
122| -------- | -------- |
123| SCAN_ERROR_NONE | 成功。 |
124| SCAN_ERROR_NO_PERMISSION | 没有权限。 |
125| SCAN_ERROR_INVALID_PARAMETER | 无效的参数。 |
126| SCAN_ERROR_GENERIC_FAILURE | 一般的内部错误。 |
127| SCAN_ERROR_RPC_FAILURE | PRC通信错误。 |
128| SCAN_ERROR_SERVER_FAILURE | 服务端错误。 |
129| SCAN_ERROR_UNSUPPORTED | 不支持该操作。 |
130| SCAN_ERROR_CANCELED | 操作被取消。 |
131| SCAN_ERROR_DEVICE_BUSY | 设备忙碌。 |
132| SCAN_ERROR_INVALID | 无效操作。 |
133| SCAN_ERROR_JAMMED | 进纸器卡纸。 |
134| SCAN_ERROR_NO_DOCS | 没有纸。 |
135| SCAN_ERROR_COVER_OPEN | 扫描仪的盖子被打开。 |
136| SCAN_ERROR_IO_ERROR | 扫描仪IO过程中错误。 |
137| SCAN_ERROR_NO_MEMORY | 扫描仪没有内存。 |
138
139
140## 函数说明
141
142
143### OH_Scan_Init()
144
145```cpp
146int32_t OH_Scan_Init();
147```
148
149**描述**
150
151这个接口用于拉起扫描服务,初始化客户端,并建立与扫描服务的连接。
152
153**系统能力:** ohos.permission.PRINT
154
155**起始版本:** 12
156
157**返回:**
158
159返回Scan_ERROR_NONE表示成功;
160
161返回SCAN_ERROR_NO_PERMISSION表示没有权限;
162
163返回SCAN_ERROR_RPC_FAILURE表示RPC通信错误;
164
165返回SCAN_ERROR_SERVER_FAILURE表示服务端出现异常。
166
167### OH_Scan_StartScannerDiscovery()
168
169```cpp
170int32_t OH_Scan_StartScannerDiscovery(Scan_ScannerDiscoveryCallback callback);
171```
172
173**描述**
174
175这个接口用于搜索扫描仪,注册一个回调函数来处理发现的扫描仪。
176
177**系统能力:** ohos.permission.PRINT
178
179**起始版本:** 12
180
181**参数:**
182
183| 名称     | 描述                       |
184| -------- | -------------------------- |
185| callback | 扫描仪发现事件的回调函数。 |
186
187**返回:**
188
189返回Scan_ERROR_NONE表示成功;
190
191返回SCAN_ERROR_NO_PERMISSION表示没有权限;
192
193返回SCAN_ERROR_RPC_FAILURE表示RPC通信错误;
194
195返回SCAN_ERROR_SERVER_FAILURE表示服务端出现异常。
196
197### OH_Scan_OpenScanner()
198
199```cpp
200int32_t OH_Scan_OpenScanner(const char* scannerId);
201```
202
203**描述**
204
205这个接口用于连接扫描仪。
206
207**系统能力:** ohos.permission.PRINT
208
209**起始版本:** 12
210
211**参数:**
212
213| 名称      | 描述       |
214| --------- | ---------- |
215| scannerId | 扫描仪的id |
216
217**返回:**
218
219返回Scan_ERROR_NONE表示成功;
220
221返回SCAN_ERROR_NO_PERMISSION表示没有权限;
222
223返回SCAN_ERROR_RPC_FAILURE表示RPC通信错误;
224
225返回SCAN_ERROR_SERVER_FAILURE表示服务端出现异常;
226
227返回SCAN_ERROR_DEVICE_BUSY表示扫描仪忙碌;
228
229返回SCAN_ERROR_INVALID_PARAMETER表示无效参数;
230
231返回SCAN_ERROR_IO_ERROR表示扫描仪IO错误;
232
233返回SCAN_ERROR_NO_MEMORY表示没有足够的内存。
234
235### OH_Scan_CloseScanner()
236
237```cpp
238int32_t OH_Scan_CloseScanner(const char* scannerId);
239```
240
241**描述**
242
243这个接口用于断开与扫描仪的连接。
244
245**系统能力:** ohos.permission.PRINT
246
247**起始版本:** 12
248
249**参数:**
250
251| 名称      | 描述       |
252| --------- | ---------- |
253| scannerId | 扫描仪的id |
254
255**返回:**
256
257返回Scan_ERROR_NONE表示成功;
258
259返回SCAN_ERROR_NO_PERMISSION表示没有权限;
260
261返回SCAN_ERROR_RPC_FAILURE表示RPC通信错误;
262
263返回SCAN_ERROR_SERVER_FAILURE表示服务端出现异常。
264
265返回SCAN_ERROR_INVALID_PARAMETER表示无效参数。
266
267### OH_Scan_GetScannerParameter()
268
269```cpp
270Scan_ScannerOptions* OH_Scan_GetScannerParameter(const char* scannerId, int32_t* errorCode);
271```
272
273**描述**
274
275这个接口用于获取扫描仪设置选项,返回的结构体指针在{@link OH_Scan_Exit}时自动释放内存,每个型号的扫描仪在内存中只存储一个副本。
276
277**系统能力:** ohos.permission.PRINT
278
279**起始版本:** 12
280
281**参数:**
282
283| 名称      | 描述       |
284| --------- | ---------- |
285| scannerId | 扫描仪的id |
286| errorCode | 错误码     |
287
288**返回:**
289
290返回Scan_ERROR_NONE表示成功;
291
292返回SCAN_ERROR_NO_PERMISSION表示没有权限;
293
294返回SCAN_ERROR_RPC_FAILURE表示RPC通信错误;
295
296返回SCAN_ERROR_SERVER_FAILURE表示服务端出现异常。
297
298### OH_Scan_SetScannerParameter()
299
300```cpp
301int32_t OH_Scan_SetScannerParameter(const char* scannerId, const int32_t option, const char* value);
302```
303
304**描述**
305
306这个接口用于设置扫描仪的选项参数,选项值的返回通过{@link OH_Scan_GetScannerParameter}接口获得。
307
308**系统能力:** ohos.permission.PRINT
309
310**起始版本:** 12
311
312**参数:**
313
314| 名称      | 描述       |
315| --------- | ---------- |
316| scannerId | 扫描仪的id |
317| option    | 选项编号   |
318| value     | 选项值     |
319
320**返回:**
321
322返回Scan_ERROR_NONE表示成功;
323
324返回SCAN_ERROR_NO_PERMISSION表示没有权限;
325
326返回SCAN_ERROR_RPC_FAILURE表示RPC通信错误;
327
328返回SCAN_ERROR_SERVER_FAILURE表示服务端出现异常;
329
330返回SCAN_ERROR_INVALID_PARAMETER表示无效参数。
331
332### OH_Scan_StartScan()
333
334```cpp
335int32_t OH_Scan_StartScan(const char* scannerId, bool batchMode);
336```
337
338**描述**
339
340这个接口用于启动扫描仪。
341
342**系统能力:** ohos.permission.PRINT
343
344**起始版本:** 12
345
346**参数:**
347
348| 名称      | 描述       |
349| --------- | ---------- |
350| scannerId | 扫描仪的id |
351| batchMode | 批处理模式 |
352
353**返回:**
354
355返回Scan_ERROR_NONE表示成功;
356返回SCAN_ERROR_NO_PERMISSION表示没有权限;
357
358返回SCAN_ERROR_RPC_FAILURE表示RPC通信错误;
359
360返回SCAN_ERROR_SERVER_FAILURE表示服务端出现异常;
361
362返回SCAN_ERROR_INVALID_PARAMETER表示无效参数;
363
364返回SCAN_ERROR_JAMMED表示扫描仪卡纸;
365
366返回SCAN_ERROR_NO_DOCS表示没有纸;
367
368返回SCAN_ERROR_COVER_OPEN表示扫描仪的盖子被打开;
369
370返回SCAN_ERROR_IO_ERROR表示扫描仪IO异常;
371
372返回SCAN_ERROR_NO_MEMORY表示没有足够的内存;
373
374返回SCAN_ERROR_DEVICE_BUSY表示扫描仪忙碌。
375
376### OH_Scan_CancelScan()
377
378```cpp
379int32_t OH_Scan_CancelScan(const char* scannerId);
380```
381
382**描述**
383
384这个接口用于取消扫描。
385
386**系统能力:** ohos.permission.PRINT
387
388**起始版本:** 12
389
390**参数:**
391
392| 名称      | 描述       |
393| --------- | ---------- |
394| scannerId | 扫描仪的id |
395
396**返回:**
397
398返回Scan_ERROR_NONE表示成功;
399
400返回SCAN_ERROR_NO_PERMISSION表示没有权限;
401
402返回SCAN_ERROR_RPC_FAILURE表示RPC通信错误;
403
404返回SCAN_ERROR_SERVER_FAILURE表示服务端出现异常;
405
406返回SCAN_ERROR_INVALID_PARAMETER表示无效参数。
407
408### OH_Scan_GetPictureScanProgress()
409
410```cpp
411int32_t OH_Scan_GetPictureScanProgress(const char* scannerId, Scan_PictureScanProgress* prog);
412```
413
414**描述**
415
416这个接口用于查询图片扫描进度。
417
418**系统能力:** ohos.permission.PRINT
419
420**起始版本:** 12
421
422**参数:**
423
424| 名称      | 描述         |
425| --------- | ------------ |
426| scannerId | 扫描仪的id   |
427| prog      | 图片扫描进度 |
428
429**返回:**
430
431返回Scan_ERROR_NONE表示成功;
432
433返回SCAN_ERROR_NO_PERMISSION表示没有权限;
434
435返回SCAN_ERROR_RPC_FAILURE表示RPC通信错误;
436
437返回SCAN_ERROR_SERVER_FAILURE表示服务端出现异常;
438
439返回SCAN_ERROR_INVALID_PARAMETER表示无效参数;
440
441返回SCAN_ERROR_JAMMED表示扫描仪卡纸;
442
443返回SCAN_ERROR_NO_DOCS表示没有纸;
444
445返回SCAN_ERROR_COVER_OPEN表示扫描仪的盖子被打开;
446
447返回SCAN_ERROR_IO_ERROR表示扫描仪IO异常;
448
449返回SCAN_ERROR_NO_MEMORY表示没有足够的内存;
450
451返回SCAN_ERROR_DEVICE_BUSY表示扫描仪忙碌。
452
453### OH_Scan_Exit()
454
455```cpp
456int32_t OH_Scan_Exit();
457```
458
459**描述**
460
461这个接口用于退出扫描服务,清除客户端内存,取消注册的扫描回调函数。
462
463**系统能力:** ohos.permission.PRINT
464
465**起始版本:** 12
466
467**返回:**
468
469返回Scan_ERROR_NONE表示成功;
470
471返回SCAN_ERROR_NO_PERMISSION表示没有权限;
472
473返回SCAN_ERROR_RPC_FAILURE表示RPC通信错误;
474
475返回SCAN_ERROR_SERVER_FAILURE表示服务端出现异常;
476
477返回SCAN_ERROR_INVALID_PARAMETER表示无效参数。