1e41f4b71Sopenharmony_ci# OH_Scan
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci
4e41f4b71Sopenharmony_ci## Overview
5e41f4b71Sopenharmony_ci
6e41f4b71Sopenharmony_ciEnables applications to use CAPI to access scanners.
7e41f4b71Sopenharmony_ci
8e41f4b71Sopenharmony_ci**Since**: 12
9e41f4b71Sopenharmony_ci
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci## Summary
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci
14e41f4b71Sopenharmony_ci### Types
15e41f4b71Sopenharmony_ci
16e41f4b71Sopenharmony_ci| Name| Description|
17e41f4b71Sopenharmony_ci| -------- | -------- |
18e41f4b71Sopenharmony_ci| Scan_ScannerDevice | Device information of a scanner.|
19e41f4b71Sopenharmony_ci| Scan_PictureScanProgress | Image scanning progress.|
20e41f4b71Sopenharmony_ci| Scan_ScannerOptions | Scanner options.|
21e41f4b71Sopenharmony_ci| Scan_ScannerDiscoveryCallback | Callback function for scanner discovery.|
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci
24e41f4b71Sopenharmony_ci### Enums
25e41f4b71Sopenharmony_ci
26e41f4b71Sopenharmony_ci| Name| Description|
27e41f4b71Sopenharmony_ci| -------- | -------- |
28e41f4b71Sopenharmony_ci| Scan_ErrorCode | Enumerates the error codes.|
29e41f4b71Sopenharmony_ci
30e41f4b71Sopenharmony_ci
31e41f4b71Sopenharmony_ci### Functions
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_ci| Name| Description|
34e41f4b71Sopenharmony_ci| -------- | -------- |
35e41f4b71Sopenharmony_ci| OH_Scan_Init | Starts the scanning service, initializes the client, and establishes a connection with the scanning service.|
36e41f4b71Sopenharmony_ci| OH_Scan_StartScannerDiscovery | Searches for scanners and registers a callback function to process the found scanners.|
37e41f4b71Sopenharmony_ci| OH_Scan_OpenScanner | Connects to a scanner.|
38e41f4b71Sopenharmony_ci| OH_Scan_CloseScanner | Disconnects from the scanner.|
39e41f4b71Sopenharmony_ci| OH_Scan_GetScannerParameter | Obtains scanner settings.|
40e41f4b71Sopenharmony_ci| OH_Scan_SetScannerParameter | Sets the option parameters of the scanner. |
41e41f4b71Sopenharmony_ci| OH_Scan_StartScan | Starts the scanner.|
42e41f4b71Sopenharmony_ci| OH_Scan_CancelScan | Cancels scanning.|
43e41f4b71Sopenharmony_ci| OH_Scan_GetPictureScanProgress | Queries the image scanning progress.|
44e41f4b71Sopenharmony_ci| OH_Scan_Exit | Exits the scanning service and releases the client memory.|
45e41f4b71Sopenharmony_ci
46e41f4b71Sopenharmony_ci
47e41f4b71Sopenharmony_ci## Type Description
48e41f4b71Sopenharmony_ci
49e41f4b71Sopenharmony_ci
50e41f4b71Sopenharmony_ci### Scan_ScannerDevice
51e41f4b71Sopenharmony_ci
52e41f4b71Sopenharmony_ci**Description**
53e41f4b71Sopenharmony_ci
54e41f4b71Sopenharmony_ciDevice information of a scanner.
55e41f4b71Sopenharmony_ci
56e41f4b71Sopenharmony_ci**Since**: 12
57e41f4b71Sopenharmony_ci
58e41f4b71Sopenharmony_ci| Member        | Description    |
59e41f4b71Sopenharmony_ci| ------------ | -------- |
60e41f4b71Sopenharmony_ci| scannerId    | Scanner ID.|
61e41f4b71Sopenharmony_ci| manufacturer | Manufacturer.  |
62e41f4b71Sopenharmony_ci| model        | Device model.|
63e41f4b71Sopenharmony_ci| discoverMode | Device discovery mode|
64e41f4b71Sopenharmony_ci| serialNumber | Serial number.  |
65e41f4b71Sopenharmony_ci
66e41f4b71Sopenharmony_ci### Scan_PictureScanProgress
67e41f4b71Sopenharmony_ci
68e41f4b71Sopenharmony_ci**Description**
69e41f4b71Sopenharmony_ci
70e41f4b71Sopenharmony_ciImage scanning progress.
71e41f4b71Sopenharmony_ci
72e41f4b71Sopenharmony_ci**Since**: 12
73e41f4b71Sopenharmony_ci
74e41f4b71Sopenharmony_ci| Member    | Description                   |
75e41f4b71Sopenharmony_ci| -------- | ----------------------- |
76e41f4b71Sopenharmony_ci| progress | Image scanning progress. The value ranges from 0 to 100.|
77e41f4b71Sopenharmony_ci| fd       | Image handle.           |
78e41f4b71Sopenharmony_ci| isFinal  | Whether the next image is available.       |
79e41f4b71Sopenharmony_ci
80e41f4b71Sopenharmony_ci### Scan_ScannerOptions
81e41f4b71Sopenharmony_ci
82e41f4b71Sopenharmony_ci**Description**
83e41f4b71Sopenharmony_ci
84e41f4b71Sopenharmony_ciScanner options.
85e41f4b71Sopenharmony_ci
86e41f4b71Sopenharmony_ci**Since**: 12
87e41f4b71Sopenharmony_ci
88e41f4b71Sopenharmony_ci| Member        | Description        |
89e41f4b71Sopenharmony_ci| ------------ | ------------ |
90e41f4b71Sopenharmony_ci| titles       | Option title.    |
91e41f4b71Sopenharmony_ci| descriptions | Option description.|
92e41f4b71Sopenharmony_ci| ranges       | Option range.    |
93e41f4b71Sopenharmony_ci| optionCount  | Number of options.    |
94e41f4b71Sopenharmony_ci
95e41f4b71Sopenharmony_ci### Scan_ScannerDiscoveryCallback
96e41f4b71Sopenharmony_ci
97e41f4b71Sopenharmony_ci**Description**
98e41f4b71Sopenharmony_ci
99e41f4b71Sopenharmony_ciCallback function for scanner discovery.
100e41f4b71Sopenharmony_ci
101e41f4b71Sopenharmony_ci**Since**: 12
102e41f4b71Sopenharmony_ci
103e41f4b71Sopenharmony_ci| Parameter       | Description      |
104e41f4b71Sopenharmony_ci| ----------- | ---------- |
105e41f4b71Sopenharmony_ci| devices     | Scanner.|
106e41f4b71Sopenharmony_ci| deviceCount | Number of scanners.  |
107e41f4b71Sopenharmony_ci
108e41f4b71Sopenharmony_ci
109e41f4b71Sopenharmony_ci
110e41f4b71Sopenharmony_ci## Enum Description
111e41f4b71Sopenharmony_ci
112e41f4b71Sopenharmony_ci
113e41f4b71Sopenharmony_ci### Scan_ErrorCode
114e41f4b71Sopenharmony_ci
115e41f4b71Sopenharmony_ci**Description**
116e41f4b71Sopenharmony_ci
117e41f4b71Sopenharmony_ciEnumerates the error codes.
118e41f4b71Sopenharmony_ci
119e41f4b71Sopenharmony_ci**Since**: 12
120e41f4b71Sopenharmony_ci
121e41f4b71Sopenharmony_ci| Value| Description|
122e41f4b71Sopenharmony_ci| -------- | -------- |
123e41f4b71Sopenharmony_ci| SCAN_ERROR_NONE | Operation succeeded.|
124e41f4b71Sopenharmony_ci| SCAN_ERROR_NO_PERMISSION | Permission denied.|
125e41f4b71Sopenharmony_ci| SCAN_ERROR_INVALID_PARAMETER | Invalid parameter.|
126e41f4b71Sopenharmony_ci| SCAN_ERROR_GENERIC_FAILURE | Internal error.|
127e41f4b71Sopenharmony_ci| SCAN_ERROR_RPC_FAILURE | PRC communication error.|
128e41f4b71Sopenharmony_ci| SCAN_ERROR_SERVER_FAILURE | Server error.|
129e41f4b71Sopenharmony_ci| SCAN_ERROR_UNSUPPORTED | Operation is not supported.|
130e41f4b71Sopenharmony_ci| SCAN_ERROR_CANCELED | Operation canceled.|
131e41f4b71Sopenharmony_ci| SCAN_ERROR_DEVICE_BUSY | Device is busy.|
132e41f4b71Sopenharmony_ci| SCAN_ERROR_INVALID | Invalid operation.|
133e41f4b71Sopenharmony_ci| SCAN_ERROR_JAMMED | Paper jammed at the paper feeder.|
134e41f4b71Sopenharmony_ci| SCAN_ERROR_NO_DOCS | Out of paper.|
135e41f4b71Sopenharmony_ci| SCAN_ERROR_COVER_OPEN | The cover of the scanner is opened.|
136e41f4b71Sopenharmony_ci| SCAN_ERROR_IO_ERROR | Scanner I/O operation error.|
137e41f4b71Sopenharmony_ci| SCAN_ERROR_NO_MEMORY | Insufficient memory.|
138e41f4b71Sopenharmony_ci
139e41f4b71Sopenharmony_ci
140e41f4b71Sopenharmony_ci## Function Description
141e41f4b71Sopenharmony_ci
142e41f4b71Sopenharmony_ci
143e41f4b71Sopenharmony_ci### OH_Scan_Init()
144e41f4b71Sopenharmony_ci
145e41f4b71Sopenharmony_ci```cpp
146e41f4b71Sopenharmony_ciint32_t OH_Scan_Init();
147e41f4b71Sopenharmony_ci```
148e41f4b71Sopenharmony_ci
149e41f4b71Sopenharmony_ci**Description**
150e41f4b71Sopenharmony_ci
151e41f4b71Sopenharmony_ciStarts the scanning service, initializes the client, and establishes a connection with the scanning service.
152e41f4b71Sopenharmony_ci
153e41f4b71Sopenharmony_ci**System capability**: ohos.permission.PRINT
154e41f4b71Sopenharmony_ci
155e41f4b71Sopenharmony_ci**Since**: 12
156e41f4b71Sopenharmony_ci
157e41f4b71Sopenharmony_ci**Returns**
158e41f4b71Sopenharmony_ci
159e41f4b71Sopenharmony_ci**Scan_ERROR_NONE**: Operation is succeeded.
160e41f4b71Sopenharmony_ci
161e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_PERMISSION**: Permission is denied.
162e41f4b71Sopenharmony_ci
163e41f4b71Sopenharmony_ci**SCAN_ERROR_RPC_FAILURE**: An RPC communication error occurs.
164e41f4b71Sopenharmony_ci
165e41f4b71Sopenharmony_ci**SCAN_ERROR_SERVER_FAILURE**: A server exception occurs.
166e41f4b71Sopenharmony_ci
167e41f4b71Sopenharmony_ci### OH_Scan_StartScannerDiscovery()
168e41f4b71Sopenharmony_ci
169e41f4b71Sopenharmony_ci```cpp
170e41f4b71Sopenharmony_ciint32_t OH_Scan_StartScannerDiscovery(Scan_ScannerDiscoveryCallback callback);
171e41f4b71Sopenharmony_ci```
172e41f4b71Sopenharmony_ci
173e41f4b71Sopenharmony_ci**Description**
174e41f4b71Sopenharmony_ci
175e41f4b71Sopenharmony_ciSearches for scanners and registers a callback function to process the found scanners.
176e41f4b71Sopenharmony_ci
177e41f4b71Sopenharmony_ci**System capability**: ohos.permission.PRINT
178e41f4b71Sopenharmony_ci
179e41f4b71Sopenharmony_ci**Since**: 12
180e41f4b71Sopenharmony_ci
181e41f4b71Sopenharmony_ci**Parameters**
182e41f4b71Sopenharmony_ci
183e41f4b71Sopenharmony_ci| Name    | Description                      |
184e41f4b71Sopenharmony_ci| -------- | -------------------------- |
185e41f4b71Sopenharmony_ci| callback | Callback function for scanner discovery.|
186e41f4b71Sopenharmony_ci
187e41f4b71Sopenharmony_ci**Returns**
188e41f4b71Sopenharmony_ci
189e41f4b71Sopenharmony_ci**Scan_ERROR_NONE**: Operation is succeeded.
190e41f4b71Sopenharmony_ci
191e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_PERMISSION**: Permission is denied.
192e41f4b71Sopenharmony_ci
193e41f4b71Sopenharmony_ci**SCAN_ERROR_RPC_FAILURE**: An RPC communication error occurs.
194e41f4b71Sopenharmony_ci
195e41f4b71Sopenharmony_ci**SCAN_ERROR_SERVER_FAILURE**: A server exception occurs.
196e41f4b71Sopenharmony_ci
197e41f4b71Sopenharmony_ci### OH_Scan_OpenScanner()
198e41f4b71Sopenharmony_ci
199e41f4b71Sopenharmony_ci```cpp
200e41f4b71Sopenharmony_ciint32_t OH_Scan_OpenScanner(const char* scannerId);
201e41f4b71Sopenharmony_ci```
202e41f4b71Sopenharmony_ci
203e41f4b71Sopenharmony_ci**Description**
204e41f4b71Sopenharmony_ci
205e41f4b71Sopenharmony_ciConnects to a scanner.
206e41f4b71Sopenharmony_ci
207e41f4b71Sopenharmony_ci**System capability**: ohos.permission.PRINT
208e41f4b71Sopenharmony_ci
209e41f4b71Sopenharmony_ci**Since**: 12
210e41f4b71Sopenharmony_ci
211e41f4b71Sopenharmony_ci**Parameters**
212e41f4b71Sopenharmony_ci
213e41f4b71Sopenharmony_ci| Name     | Description      |
214e41f4b71Sopenharmony_ci| --------- | ---------- |
215e41f4b71Sopenharmony_ci| scannerId | Scanner ID.|
216e41f4b71Sopenharmony_ci
217e41f4b71Sopenharmony_ci**Returns**
218e41f4b71Sopenharmony_ci
219e41f4b71Sopenharmony_ci**Scan_ERROR_NONE**: Operation is succeeded.
220e41f4b71Sopenharmony_ci
221e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_PERMISSION**: Permission is denied.
222e41f4b71Sopenharmony_ci
223e41f4b71Sopenharmony_ci**SCAN_ERROR_RPC_FAILURE**: An RPC communication error occurs.
224e41f4b71Sopenharmony_ci
225e41f4b71Sopenharmony_ci**SCAN_ERROR_SERVER_FAILURE**: A server exception occurs.
226e41f4b71Sopenharmony_ci
227e41f4b71Sopenharmony_ci**SCAN_ERROR_DEVICE_BUSY**: The scanner is busy.
228e41f4b71Sopenharmony_ci
229e41f4b71Sopenharmony_ci**SCAN_ERROR_INVALID_PARAMETER**: The parameter is invalid.
230e41f4b71Sopenharmony_ci
231e41f4b71Sopenharmony_ci**SCAN_ERROR_IO_ERROR**: An I/O operation error occurs on the scanner.
232e41f4b71Sopenharmony_ci
233e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_MEMORY**: The scanner memory is insufficient.
234e41f4b71Sopenharmony_ci
235e41f4b71Sopenharmony_ci### OH_Scan_CloseScanner()
236e41f4b71Sopenharmony_ci
237e41f4b71Sopenharmony_ci```cpp
238e41f4b71Sopenharmony_ciint32_t OH_Scan_CloseScanner(const char* scannerId);
239e41f4b71Sopenharmony_ci```
240e41f4b71Sopenharmony_ci
241e41f4b71Sopenharmony_ci**Description**
242e41f4b71Sopenharmony_ci
243e41f4b71Sopenharmony_ciDisconnects from a scanner.
244e41f4b71Sopenharmony_ci
245e41f4b71Sopenharmony_ci**System capability**: ohos.permission.PRINT
246e41f4b71Sopenharmony_ci
247e41f4b71Sopenharmony_ci**Since**: 12
248e41f4b71Sopenharmony_ci
249e41f4b71Sopenharmony_ci**Parameters**
250e41f4b71Sopenharmony_ci
251e41f4b71Sopenharmony_ci| Name     | Description      |
252e41f4b71Sopenharmony_ci| --------- | ---------- |
253e41f4b71Sopenharmony_ci| scannerId | Scanner ID.|
254e41f4b71Sopenharmony_ci
255e41f4b71Sopenharmony_ci**Returns**
256e41f4b71Sopenharmony_ci
257e41f4b71Sopenharmony_ci**Scan_ERROR_NONE**: Operation is succeeded.
258e41f4b71Sopenharmony_ci
259e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_PERMISSION**: Permission is denied.
260e41f4b71Sopenharmony_ci
261e41f4b71Sopenharmony_ci**SCAN_ERROR_RPC_FAILURE**: An RPC communication error occurs.
262e41f4b71Sopenharmony_ci
263e41f4b71Sopenharmony_ci**SCAN_ERROR_SERVER_FAILURE**: A server exception occurs.
264e41f4b71Sopenharmony_ci
265e41f4b71Sopenharmony_ci**SCAN_ERROR_INVALID_PARAMETER**: The parameter is invalid.
266e41f4b71Sopenharmony_ci
267e41f4b71Sopenharmony_ci### OH_Scan_GetScannerParameter()
268e41f4b71Sopenharmony_ci
269e41f4b71Sopenharmony_ci```cpp
270e41f4b71Sopenharmony_ciScan_ScannerOptions* OH_Scan_GetScannerParameter(const char* scannerId, int32_t* errorCode);
271e41f4b71Sopenharmony_ci```
272e41f4b71Sopenharmony_ci
273e41f4b71Sopenharmony_ci**Description**
274e41f4b71Sopenharmony_ci
275e41f4b71Sopenharmony_ciObtains the scanner setting options. The memory is automatically released when returned structure points to {@link OH_Scan_Exit}. Only one copy of each scanner model is stored in the memory.
276e41f4b71Sopenharmony_ci
277e41f4b71Sopenharmony_ci**System capability**: ohos.permission.PRINT
278e41f4b71Sopenharmony_ci
279e41f4b71Sopenharmony_ci**Since**: 12
280e41f4b71Sopenharmony_ci
281e41f4b71Sopenharmony_ci**Parameters**
282e41f4b71Sopenharmony_ci
283e41f4b71Sopenharmony_ci| Name     | Description      |
284e41f4b71Sopenharmony_ci| --------- | ---------- |
285e41f4b71Sopenharmony_ci| scannerId | Scanner ID.|
286e41f4b71Sopenharmony_ci| errorCode | Error code.    |
287e41f4b71Sopenharmony_ci
288e41f4b71Sopenharmony_ci**Returns**
289e41f4b71Sopenharmony_ci
290e41f4b71Sopenharmony_ci**Scan_ERROR_NONE**: Operation is succeeded.
291e41f4b71Sopenharmony_ci
292e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_PERMISSION**: Permission is denied.
293e41f4b71Sopenharmony_ci
294e41f4b71Sopenharmony_ci**SCAN_ERROR_RPC_FAILURE**: An RPC communication error occurs.
295e41f4b71Sopenharmony_ci
296e41f4b71Sopenharmony_ci**SCAN_ERROR_SERVER_FAILURE**: A server exception occurs.
297e41f4b71Sopenharmony_ci
298e41f4b71Sopenharmony_ci### OH_Scan_SetScannerParameter()
299e41f4b71Sopenharmony_ci
300e41f4b71Sopenharmony_ci```cpp
301e41f4b71Sopenharmony_ciint32_t OH_Scan_SetScannerParameter(const char* scannerId, const int32_t option, const char* value);
302e41f4b71Sopenharmony_ci```
303e41f4b71Sopenharmony_ci
304e41f4b71Sopenharmony_ci**Description**
305e41f4b71Sopenharmony_ci
306e41f4b71Sopenharmony_ciSets the option parameters of the scanner. The option values are obtained through the {@link OH_Scan_GetScannerParameter} API.
307e41f4b71Sopenharmony_ci
308e41f4b71Sopenharmony_ci**System capability**: ohos.permission.PRINT
309e41f4b71Sopenharmony_ci
310e41f4b71Sopenharmony_ci**Since**: 12
311e41f4b71Sopenharmony_ci
312e41f4b71Sopenharmony_ci**Parameters**
313e41f4b71Sopenharmony_ci
314e41f4b71Sopenharmony_ci| Name     | Description      |
315e41f4b71Sopenharmony_ci| --------- | ---------- |
316e41f4b71Sopenharmony_ci| scannerId | Scanner ID.|
317e41f4b71Sopenharmony_ci| option    | Option Number.  |
318e41f4b71Sopenharmony_ci| value     | Option value.    |
319e41f4b71Sopenharmony_ci
320e41f4b71Sopenharmony_ci**Returns**
321e41f4b71Sopenharmony_ci
322e41f4b71Sopenharmony_ci**Scan_ERROR_NONE**: Operation is succeeded.
323e41f4b71Sopenharmony_ci
324e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_PERMISSION**: Permission is denied.
325e41f4b71Sopenharmony_ci
326e41f4b71Sopenharmony_ci**SCAN_ERROR_RPC_FAILURE**: An RPC communication error occurs.
327e41f4b71Sopenharmony_ci
328e41f4b71Sopenharmony_ci**SCAN_ERROR_SERVER_FAILURE**: A server exception occurs.
329e41f4b71Sopenharmony_ci
330e41f4b71Sopenharmony_ci**SCAN_ERROR_INVALID_PARAMETER**: The parameter is invalid.
331e41f4b71Sopenharmony_ci
332e41f4b71Sopenharmony_ci### OH_Scan_StartScan()
333e41f4b71Sopenharmony_ci
334e41f4b71Sopenharmony_ci```cpp
335e41f4b71Sopenharmony_ciint32_t OH_Scan_StartScan(const char* scannerId, bool batchMode);
336e41f4b71Sopenharmony_ci```
337e41f4b71Sopenharmony_ci
338e41f4b71Sopenharmony_ci**Description**
339e41f4b71Sopenharmony_ci
340e41f4b71Sopenharmony_ciStarts a scanner.
341e41f4b71Sopenharmony_ci
342e41f4b71Sopenharmony_ci**System capability**: ohos.permission.PRINT
343e41f4b71Sopenharmony_ci
344e41f4b71Sopenharmony_ci**Since**: 12
345e41f4b71Sopenharmony_ci
346e41f4b71Sopenharmony_ci**Parameters**
347e41f4b71Sopenharmony_ci
348e41f4b71Sopenharmony_ci| Name     | Description      |
349e41f4b71Sopenharmony_ci| --------- | ---------- |
350e41f4b71Sopenharmony_ci| scannerId | Scanner ID.|
351e41f4b71Sopenharmony_ci| batchMode | Batch processing mode.|
352e41f4b71Sopenharmony_ci
353e41f4b71Sopenharmony_ci**Returns**
354e41f4b71Sopenharmony_ci
355e41f4b71Sopenharmony_ci**Scan_ERROR_NONE**: Operation is succeeded.
356e41f4b71Sopenharmony_ci
357e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_PERMISSION**: Permission is denied.
358e41f4b71Sopenharmony_ci
359e41f4b71Sopenharmony_ci**SCAN_ERROR_RPC_FAILURE**: An RPC communication error occurs.
360e41f4b71Sopenharmony_ci
361e41f4b71Sopenharmony_ci**SCAN_ERROR_SERVER_FAILURE**: A server exception occurs.
362e41f4b71Sopenharmony_ci
363e41f4b71Sopenharmony_ci**SCAN_ERROR_INVALID_PARAMETER**: The parameter is invalid.
364e41f4b71Sopenharmony_ci
365e41f4b71Sopenharmony_ci**SCAN_ERROR_JAMMED**: Paper jammed at the paper feeder.
366e41f4b71Sopenharmony_ci
367e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_DOCS**: The scanner is out of paper.
368e41f4b71Sopenharmony_ci
369e41f4b71Sopenharmony_ci**SCAN_ERROR_COVER_OPEN**: The cover of the scanner is opened.
370e41f4b71Sopenharmony_ci
371e41f4b71Sopenharmony_ci**SCAN_ERROR_IO_ERROR**: An I/O operation exception occurs on the scanner.
372e41f4b71Sopenharmony_ci
373e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_MEMORY**: The scanner memory is insufficient.
374e41f4b71Sopenharmony_ci
375e41f4b71Sopenharmony_ci**SCAN_ERROR_DEVICE_BUSY**: The scanner is busy.
376e41f4b71Sopenharmony_ci
377e41f4b71Sopenharmony_ci### OH_Scan_CancelScan()
378e41f4b71Sopenharmony_ci
379e41f4b71Sopenharmony_ci```cpp
380e41f4b71Sopenharmony_ciint32_t OH_Scan_CancelScan(const char* scannerId);
381e41f4b71Sopenharmony_ci```
382e41f4b71Sopenharmony_ci
383e41f4b71Sopenharmony_ci**Description**
384e41f4b71Sopenharmony_ci
385e41f4b71Sopenharmony_ciCancels scanning.
386e41f4b71Sopenharmony_ci
387e41f4b71Sopenharmony_ci**System capability**: ohos.permission.PRINT
388e41f4b71Sopenharmony_ci
389e41f4b71Sopenharmony_ci**Since**: 12
390e41f4b71Sopenharmony_ci
391e41f4b71Sopenharmony_ci**Parameters**
392e41f4b71Sopenharmony_ci
393e41f4b71Sopenharmony_ci| Name     | Description      |
394e41f4b71Sopenharmony_ci| --------- | ---------- |
395e41f4b71Sopenharmony_ci| scannerId | Scanner ID.|
396e41f4b71Sopenharmony_ci
397e41f4b71Sopenharmony_ci**Returns**
398e41f4b71Sopenharmony_ci
399e41f4b71Sopenharmony_ci**Scan_ERROR_NONE**: Operation is succeeded.
400e41f4b71Sopenharmony_ci
401e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_PERMISSION**: Permission is denied.
402e41f4b71Sopenharmony_ci
403e41f4b71Sopenharmony_ci**SCAN_ERROR_RPC_FAILURE**: An RPC communication error occurs.
404e41f4b71Sopenharmony_ci
405e41f4b71Sopenharmony_ci**SCAN_ERROR_SERVER_FAILURE**: A server exception occurs.
406e41f4b71Sopenharmony_ci
407e41f4b71Sopenharmony_ci**SCAN_ERROR_INVALID_PARAMETER**: The parameter is invalid.
408e41f4b71Sopenharmony_ci
409e41f4b71Sopenharmony_ci### OH_Scan_GetPictureScanProgress()
410e41f4b71Sopenharmony_ci
411e41f4b71Sopenharmony_ci```cpp
412e41f4b71Sopenharmony_ciint32_t OH_Scan_GetPictureScanProgress(const char* scannerId, Scan_PictureScanProgress* prog);
413e41f4b71Sopenharmony_ci```
414e41f4b71Sopenharmony_ci
415e41f4b71Sopenharmony_ci**Description**
416e41f4b71Sopenharmony_ci
417e41f4b71Sopenharmony_ciQueries the image scanning progress.
418e41f4b71Sopenharmony_ci
419e41f4b71Sopenharmony_ci**System capability**: ohos.permission.PRINT
420e41f4b71Sopenharmony_ci
421e41f4b71Sopenharmony_ci**Since**: 12
422e41f4b71Sopenharmony_ci
423e41f4b71Sopenharmony_ci**Parameters**
424e41f4b71Sopenharmony_ci
425e41f4b71Sopenharmony_ci| Name     | Description        |
426e41f4b71Sopenharmony_ci| --------- | ------------ |
427e41f4b71Sopenharmony_ci| scannerId | Scanner ID.  |
428e41f4b71Sopenharmony_ci| prog      | Image scanning progress.|
429e41f4b71Sopenharmony_ci
430e41f4b71Sopenharmony_ci**Returns**
431e41f4b71Sopenharmony_ci
432e41f4b71Sopenharmony_ci**Scan_ERROR_NONE**: Operation is succeeded.
433e41f4b71Sopenharmony_ci
434e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_PERMISSION**: Permission is denied.
435e41f4b71Sopenharmony_ci
436e41f4b71Sopenharmony_ci**SCAN_ERROR_RPC_FAILURE**: An RPC communication error occurs.
437e41f4b71Sopenharmony_ci
438e41f4b71Sopenharmony_ci**SCAN_ERROR_SERVER_FAILURE**: A server exception occurs.
439e41f4b71Sopenharmony_ci
440e41f4b71Sopenharmony_ci**SCAN_ERROR_INVALID_PARAMETER**: The parameter is invalid.
441e41f4b71Sopenharmony_ci
442e41f4b71Sopenharmony_ci**SCAN_ERROR_JAMMED**: Paper jammed at the paper feeder.
443e41f4b71Sopenharmony_ci
444e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_DOCS**: The scanner is out of paper.
445e41f4b71Sopenharmony_ci
446e41f4b71Sopenharmony_ci**SCAN_ERROR_COVER_OPEN**: The cover of the scanner is opened.
447e41f4b71Sopenharmony_ci
448e41f4b71Sopenharmony_ci**SCAN_ERROR_IO_ERROR**: An I/O operation exception occurs on the scanner.
449e41f4b71Sopenharmony_ci
450e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_MEMORY**: The scanner memory is insufficient.
451e41f4b71Sopenharmony_ci
452e41f4b71Sopenharmony_ci**SCAN_ERROR_DEVICE_BUSY**: The scanner is busy.
453e41f4b71Sopenharmony_ci
454e41f4b71Sopenharmony_ci### OH_Scan_Exit()
455e41f4b71Sopenharmony_ci
456e41f4b71Sopenharmony_ci```cpp
457e41f4b71Sopenharmony_ciint32_t OH_Scan_Exit();
458e41f4b71Sopenharmony_ci```
459e41f4b71Sopenharmony_ci
460e41f4b71Sopenharmony_ci**Description**
461e41f4b71Sopenharmony_ci
462e41f4b71Sopenharmony_ciExits the scanning service, clear the client memory, and cancel the registered scanning callback function.
463e41f4b71Sopenharmony_ci
464e41f4b71Sopenharmony_ci**System capability**: ohos.permission.PRINT
465e41f4b71Sopenharmony_ci
466e41f4b71Sopenharmony_ci**Since**: 12
467e41f4b71Sopenharmony_ci
468e41f4b71Sopenharmony_ci**Returns**
469e41f4b71Sopenharmony_ci
470e41f4b71Sopenharmony_ci**Scan_ERROR_NONE**: Operation is succeeded.
471e41f4b71Sopenharmony_ci
472e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_PERMISSION**: Permission is denied.
473e41f4b71Sopenharmony_ci
474e41f4b71Sopenharmony_ci**SCAN_ERROR_RPC_FAILURE**: An RPC communication error occurs.
475e41f4b71Sopenharmony_ci
476e41f4b71Sopenharmony_ci**SCAN_ERROR_SERVER_FAILURE**: A server exception occurs.
477e41f4b71Sopenharmony_ci
478e41f4b71Sopenharmony_ci**SCAN_ERROR_INVALID_PARAMETER**: The parameter is invalid.
479