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