1e41f4b71Sopenharmony_ci# OH_Print
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci
4e41f4b71Sopenharmony_ci## 概述
5e41f4b71Sopenharmony_ci
6e41f4b71Sopenharmony_ci提供打印模块的C接口定义.
7e41f4b71Sopenharmony_ci
8e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Print.PrintFramework
9e41f4b71Sopenharmony_ci
10e41f4b71Sopenharmony_ci**起始版本:** 12
11e41f4b71Sopenharmony_ci
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci## 汇总
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ci
16e41f4b71Sopenharmony_ci### 文件
17e41f4b71Sopenharmony_ci
18e41f4b71Sopenharmony_ci| 名称 | 描述 | 
19e41f4b71Sopenharmony_ci| -------- | -------- |
20e41f4b71Sopenharmony_ci| [ohprint.h](ohprint_8h.md) | 声明用于发现和连接打印机、从打印机打印文件、查询已添加打印机的列表及其中的打印机信息等API.  | 
21e41f4b71Sopenharmony_ci
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci### 结构体
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ci| 名称 | 描述 | 
26e41f4b71Sopenharmony_ci| -------- | -------- |
27e41f4b71Sopenharmony_ci| struct  [Print_Margin](_print___margin.md) | 打印边距  | 
28e41f4b71Sopenharmony_ci| struct  [Print_PageSize](_print___page_size.md) | 纸张大小信息.  | 
29e41f4b71Sopenharmony_ci| struct  [Print_Range](_print___range.md) | 打印范围.  | 
30e41f4b71Sopenharmony_ci| struct  [Print_PrintAttributes](_print___print_attributes.md) | 打印属性结构体.  | 
31e41f4b71Sopenharmony_ci| struct  [Print_PrintDocCallback](_print___print_doc_callback.md) | 打印文档任务回调结构体.  | 
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_ci
34e41f4b71Sopenharmony_ci### 类型定义
35e41f4b71Sopenharmony_ci
36e41f4b71Sopenharmony_ci| 名称 | 描述 | 
37e41f4b71Sopenharmony_ci| -------- | -------- |
38e41f4b71Sopenharmony_ci| typedef void(\* [Print_WriteResultCallback](#print_writeresultcallback)) (const char \*jobId, uint32_t code) | 文件回写回调.  | 
39e41f4b71Sopenharmony_ci| typedef void(\* [Print_OnStartLayoutWrite](#print_onstartlayoutwrite)) (const char \*jobId, uint32_t fd, const [Print_PrintAttributes](_print___print_attributes.md) \*oldAttrs, const [Print_PrintAttributes](_print___print_attributes.md) \*newAttrs, [Print_WriteResultCallback](#print_writeresultcallback) writeCallback) | 文件开始回写回调函数.  | 
40e41f4b71Sopenharmony_ci| typedef void(\* [Print_OnJobStateChanged](#print_onjobstatechanged)) (const char \*jobId, uint32_t state) | 打印任务状态回调.  | 
41e41f4b71Sopenharmony_ci
42e41f4b71Sopenharmony_ci
43e41f4b71Sopenharmony_ci### 枚举
44e41f4b71Sopenharmony_ci
45e41f4b71Sopenharmony_ci| 名称 | 描述 | 
46e41f4b71Sopenharmony_ci| -------- | -------- |
47e41f4b71Sopenharmony_ci| [Print_ErrorCode](#print_errorcode) {<br/>PRINT_ERROR_NONE = 0, PRINT_ERROR_NO_PERMISSION = 201, PRINT_ERROR_INVALID_PARAMETER = 401, PRINT_ERROR_GENERIC_FAILURE = 24300001,<br/>PRINT_ERROR_RPC_FAILURE = 24300002, PRINT_ERROR_SERVER_FAILURE = 24300003, PRINT_ERROR_INVALID_EXTENSION = 24300004, PRINT_ERROR_INVALID_PRINTER = 24300005,<br/>PRINT_ERROR_INVALID_PRINT_JOB = 24300006, PRINT_ERROR_FILE_IO = 24300007, PRINT_ERROR_UNKNOWN = 24300255<br/>} | 枚举错误码.  | 
48e41f4b71Sopenharmony_ci| [Print_JobDocAdapterState](#print_jobdocadapterstate) {<br/>PRINT_DOC_ADAPTER_PREVIEW_ABILITY_DESTROY = 0, PRINT_DOC_ADAPTER_PRINT_TASK_SUCCEED = 1, PRINT_DOC_ADAPTER_PRINT_TASK_FAIL = 2, PRINT_DOC_ADAPTER_PRINT_TASK_CANCEL = 3,<br/>PRINT_DOC_ADAPTER_PRINT_TASK_BLOCK = 4, PRINT_DOC_ADAPTER_PREVIEW_ABILITY_DESTROY_FOR_CANCELED = 5, PRINT_DOC_ADAPTER_PREVIEW_ABILITY_DESTROY_FOR_STARTED = 6<br/>} | 打印文档任务的状态.  | 
49e41f4b71Sopenharmony_ci
50e41f4b71Sopenharmony_ci
51e41f4b71Sopenharmony_ci### 函数
52e41f4b71Sopenharmony_ci
53e41f4b71Sopenharmony_ci| 名称 | 描述 | 
54e41f4b71Sopenharmony_ci| -------- | -------- |
55e41f4b71Sopenharmony_ci| [Print_ErrorCode](#print_errorcode)[OH_Print_StartPrintByNative](#oh_print_startprintbynative) (const char \*printJobName, [Print_PrintDocCallback](_print___print_doc_callback.md) printDocCallback, void \*context) | 拉起打印预览界面接口.  | 
56e41f4b71Sopenharmony_ci
57e41f4b71Sopenharmony_ci
58e41f4b71Sopenharmony_ci## 类型定义说明
59e41f4b71Sopenharmony_ci
60e41f4b71Sopenharmony_ci
61e41f4b71Sopenharmony_ci### Print_OnJobStateChanged
62e41f4b71Sopenharmony_ci
63e41f4b71Sopenharmony_ci```
64e41f4b71Sopenharmony_citypedef void(* Print_OnJobStateChanged) (const char *jobId, uint32_t state)
65e41f4b71Sopenharmony_ci```
66e41f4b71Sopenharmony_ci**描述**
67e41f4b71Sopenharmony_ci打印任务状态回调.
68e41f4b71Sopenharmony_ci
69e41f4b71Sopenharmony_ci**起始版本:** 13
70e41f4b71Sopenharmony_ci
71e41f4b71Sopenharmony_ci**参数:**
72e41f4b71Sopenharmony_ci
73e41f4b71Sopenharmony_ci| 名称 | 描述 | 
74e41f4b71Sopenharmony_ci| -------- | -------- |
75e41f4b71Sopenharmony_ci| jobId | 打印任务id.  | 
76e41f4b71Sopenharmony_ci| state | 当前任务状态.  | 
77e41f4b71Sopenharmony_ci
78e41f4b71Sopenharmony_ci
79e41f4b71Sopenharmony_ci### Print_OnStartLayoutWrite
80e41f4b71Sopenharmony_ci
81e41f4b71Sopenharmony_ci```
82e41f4b71Sopenharmony_citypedef void(* Print_OnStartLayoutWrite) (const char *jobId, uint32_t fd, const Print_PrintAttributes *oldAttrs, const Print_PrintAttributes *newAttrs, Print_WriteResultCallback writeCallback)
83e41f4b71Sopenharmony_ci```
84e41f4b71Sopenharmony_ci**描述**
85e41f4b71Sopenharmony_ci文件开始回写回调函数.
86e41f4b71Sopenharmony_ci
87e41f4b71Sopenharmony_ci**起始版本:** 13
88e41f4b71Sopenharmony_ci
89e41f4b71Sopenharmony_ci**参数:**
90e41f4b71Sopenharmony_ci
91e41f4b71Sopenharmony_ci| 名称 | 描述 | 
92e41f4b71Sopenharmony_ci| -------- | -------- |
93e41f4b71Sopenharmony_ci| jobId | 打印任务id.  | 
94e41f4b71Sopenharmony_ci| fd | 回写的文件句柄.  | 
95e41f4b71Sopenharmony_ci| oldAttrs | 用户设置打印参数变化前的参数.  | 
96e41f4b71Sopenharmony_ci| newAttrs | 用户设置打印参数变化后的参数.  | 
97e41f4b71Sopenharmony_ci| writeCallback | 使用方回写完文件后调用回调函数通知打印服务.  | 
98e41f4b71Sopenharmony_ci
99e41f4b71Sopenharmony_ci
100e41f4b71Sopenharmony_ci### Print_WriteResultCallback
101e41f4b71Sopenharmony_ci
102e41f4b71Sopenharmony_ci```
103e41f4b71Sopenharmony_citypedef void(* Print_WriteResultCallback) (const char *jobId, uint32_t code)
104e41f4b71Sopenharmony_ci```
105e41f4b71Sopenharmony_ci**描述**
106e41f4b71Sopenharmony_ci文件回写回调.
107e41f4b71Sopenharmony_ci
108e41f4b71Sopenharmony_ci**起始版本:** 13
109e41f4b71Sopenharmony_ci
110e41f4b71Sopenharmony_ci**参数:**
111e41f4b71Sopenharmony_ci
112e41f4b71Sopenharmony_ci| 名称 | 描述 | 
113e41f4b71Sopenharmony_ci| -------- | -------- |
114e41f4b71Sopenharmony_ci| jobId | 打印任务id  | 
115e41f4b71Sopenharmony_ci| code | 文件回写结果.  | 
116e41f4b71Sopenharmony_ci
117e41f4b71Sopenharmony_ci
118e41f4b71Sopenharmony_ci## 枚举类型说明
119e41f4b71Sopenharmony_ci
120e41f4b71Sopenharmony_ci
121e41f4b71Sopenharmony_ci### Print_ErrorCode
122e41f4b71Sopenharmony_ci
123e41f4b71Sopenharmony_ci```
124e41f4b71Sopenharmony_cienum Print_ErrorCode
125e41f4b71Sopenharmony_ci```
126e41f4b71Sopenharmony_ci**描述**
127e41f4b71Sopenharmony_ci枚举错误码.
128e41f4b71Sopenharmony_ci
129e41f4b71Sopenharmony_ci**起始版本:** 12
130e41f4b71Sopenharmony_ci
131e41f4b71Sopenharmony_ci| 枚举值 | 描述 | 
132e41f4b71Sopenharmony_ci| -------- | -------- |
133e41f4b71Sopenharmony_ci| PRINT_ERROR_NONE  | 成功.   | 
134e41f4b71Sopenharmony_ci| PRINT_ERROR_NO_PERMISSION  | 没有权限.   | 
135e41f4b71Sopenharmony_ci| PRINT_ERROR_INVALID_PARAMETER  | 无效参数.   | 
136e41f4b71Sopenharmony_ci| PRINT_ERROR_GENERIC_FAILURE  | 内部错误.   | 
137e41f4b71Sopenharmony_ci| PRINT_ERROR_RPC_FAILURE  | rpc传输错误.   | 
138e41f4b71Sopenharmony_ci| PRINT_ERROR_SERVER_FAILURE  | 打印服务错误.   | 
139e41f4b71Sopenharmony_ci| PRINT_ERROR_INVALID_EXTENSION  | 无效打印扩展.   | 
140e41f4b71Sopenharmony_ci| PRINT_ERROR_INVALID_PRINTER  | 无效打印机.   | 
141e41f4b71Sopenharmony_ci| PRINT_ERROR_INVALID_PRINT_JOB  | 无效打印任务.   | 
142e41f4b71Sopenharmony_ci| PRINT_ERROR_FILE_IO  | 文件读写错误.   | 
143e41f4b71Sopenharmony_ci| PRINT_ERROR_UNKNOWN  | 未知错误.   | 
144e41f4b71Sopenharmony_ci
145e41f4b71Sopenharmony_ci
146e41f4b71Sopenharmony_ci### Print_JobDocAdapterState
147e41f4b71Sopenharmony_ci
148e41f4b71Sopenharmony_ci```
149e41f4b71Sopenharmony_cienum Print_JobDocAdapterState
150e41f4b71Sopenharmony_ci```
151e41f4b71Sopenharmony_ci**描述**
152e41f4b71Sopenharmony_ci打印文档任务的状态.
153e41f4b71Sopenharmony_ci
154e41f4b71Sopenharmony_ci**起始版本:** 13
155e41f4b71Sopenharmony_ci
156e41f4b71Sopenharmony_ci| 枚举值 | 描述 | 
157e41f4b71Sopenharmony_ci| -------- | -------- |
158e41f4b71Sopenharmony_ci| PRINT_DOC_ADAPTER_PREVIEW_ABILITY_DESTROY  | 打印预览界面销毁.   | 
159e41f4b71Sopenharmony_ci| PRINT_DOC_ADAPTER_PRINT_TASK_SUCCEED  | 打印任务执行成功.   | 
160e41f4b71Sopenharmony_ci| PRINT_DOC_ADAPTER_PRINT_TASK_FAIL  | 打印任务执行失败.   | 
161e41f4b71Sopenharmony_ci| PRINT_DOC_ADAPTER_PRINT_TASK_CANCEL  | 打印任务被取消.   | 
162e41f4b71Sopenharmony_ci| PRINT_DOC_ADAPTER_PRINT_TASK_BLOCK  | 打印任务阻塞.   | 
163e41f4b71Sopenharmony_ci| PRINT_DOC_ADAPTER_PREVIEW_ABILITY_DESTROY_FOR_CANCELED  | 预览界面点击取消按钮界面退出.   | 
164e41f4b71Sopenharmony_ci| PRINT_DOC_ADAPTER_PREVIEW_ABILITY_DESTROY_FOR_STARTED  | 预览界面点击打印按钮界面退出.   | 
165e41f4b71Sopenharmony_ci
166e41f4b71Sopenharmony_ci
167e41f4b71Sopenharmony_ci## 函数说明
168e41f4b71Sopenharmony_ci
169e41f4b71Sopenharmony_ci
170e41f4b71Sopenharmony_ci### OH_Print_StartPrintByNative()
171e41f4b71Sopenharmony_ci
172e41f4b71Sopenharmony_ci```
173e41f4b71Sopenharmony_ciPrint_ErrorCode OH_Print_StartPrintByNative (const char * printJobName, Print_PrintDocCallback printDocCallback, void * context )
174e41f4b71Sopenharmony_ci```
175e41f4b71Sopenharmony_ci**描述**
176e41f4b71Sopenharmony_ci拉起打印预览界面接口.
177e41f4b71Sopenharmony_ci
178e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Print.PrintFramework
179e41f4b71Sopenharmony_ci
180e41f4b71Sopenharmony_ci**起始版本:** 13
181e41f4b71Sopenharmony_ci
182e41f4b71Sopenharmony_ci**参数:**
183e41f4b71Sopenharmony_ci
184e41f4b71Sopenharmony_ci| 名称 | 描述 | 
185e41f4b71Sopenharmony_ci| -------- | -------- |
186e41f4b71Sopenharmony_ci| printJobName | 打印任务名称.  | 
187e41f4b71Sopenharmony_ci| printDocCallback | 打印文档任务回调结构体.  | 
188e41f4b71Sopenharmony_ci| context | 调用接口的ability的上下文.  | 
189e41f4b71Sopenharmony_ci
190e41f4b71Sopenharmony_ci**Permission:**
191e41f4b71Sopenharmony_ci
192e41f4b71Sopenharmony_ciohos.permission.PRINT
193e41f4b71Sopenharmony_ci
194e41f4b71Sopenharmony_ci**返回:**
195e41f4b71Sopenharmony_ci
196e41f4b71Sopenharmony_ci返回 Print_ErrorCode#PRINT_ERROR_NONE 执行成功. PRINT_ERROR_NO_PERMISSION 需要配置ohos.permission.PRINT  权限. PRINT_ERROR_RPC_FAILURE 无法连接打印服务.
197