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