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