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表示无效参数。