# OH_Print ## 概述 提供打印模块的C接口定义。 **系统能力:** SystemCapability.Print.PrintFramework **起始版本:** 12 ## 汇总 ### 文件 | 名称 | 描述 | | -------- | -------- | | [ohprint.h](ohprint_8h.md) | 声明用于发现和连接打印机、从打印机打印文件、查询已添加打印机的列表及其中的打印机信息等API。 | ### 结构体 | 名称 | 描述 | | -------- | -------- | | struct [Print_Margin](_print___margin.md) | 打印边距 | | struct [Print_PageSize](_print___page_size.md) | 纸张大小信息。 | | struct [Print_Range](_print___range.md) | 打印范围。 | | struct [Print_PrintAttributes](_print___print_attributes.md) | 打印属性结构体。 | | struct [Print_PrintDocCallback](_print___print_doc_callback.md) | 打印文档任务回调结构体。 | ### 类型定义 | 名称 | 描述 | | -------- | -------- | | typedef void(\* [Print_WriteResultCallback](#print_writeresultcallback)) (const char \*jobId, uint32_t code) | 文件回写回调。 | | 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) | 文件开始回写回调函数。 | | typedef void(\* [Print_OnJobStateChanged](#print_onjobstatechanged)) (const char \*jobId, uint32_t state) | 打印任务状态回调。 | ### 枚举 | 名称 | 描述 | | -------- | -------- | | [Print_ErrorCode](#print_errorcode) {
PRINT_ERROR_NONE = 0, PRINT_ERROR_NO_PERMISSION = 201, PRINT_ERROR_INVALID_PARAMETER = 401, PRINT_ERROR_GENERIC_FAILURE = 24300001,
PRINT_ERROR_RPC_FAILURE = 24300002, PRINT_ERROR_SERVER_FAILURE = 24300003, PRINT_ERROR_INVALID_EXTENSION = 24300004, PRINT_ERROR_INVALID_PRINTER = 24300005,
PRINT_ERROR_INVALID_PRINT_JOB = 24300006, PRINT_ERROR_FILE_IO = 24300007, PRINT_ERROR_UNKNOWN = 24300255
} | 枚举错误码。 | | [Print_JobDocAdapterState](#print_jobdocadapterstate) {
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,
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
} | 打印文档任务的状态。 | ### 函数 | 名称 | 描述 | | -------- | -------- | | [Print_ErrorCode](#print_errorcode)[OH_Print_StartPrintByNative](#oh_print_startprintbynative) (const char \*printJobName, [Print_PrintDocCallback](_print___print_doc_callback.md) printDocCallback, void \*context) | 拉起打印预览界面接口。 | ## 类型定义说明 ### Print_OnJobStateChanged ``` typedef void(* Print_OnJobStateChanged) (const char *jobId, uint32_t state) ``` **描述** 打印任务状态回调。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | jobId | 打印任务id。 | | state | 当前任务状态。 | ### Print_OnStartLayoutWrite ``` typedef void(* Print_OnStartLayoutWrite) (const char *jobId, uint32_t fd, const Print_PrintAttributes *oldAttrs, const Print_PrintAttributes *newAttrs, Print_WriteResultCallback writeCallback) ``` **描述** 文件开始回写回调函数。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | jobId | 打印任务id。 | | fd | 回写的文件句柄。 | | oldAttrs | 用户设置打印参数变化前的参数。 | | newAttrs | 用户设置打印参数变化后的参数。 | | writeCallback | 使用方回写完文件后调用回调函数通知打印服务。 | ### Print_WriteResultCallback ``` typedef void(* Print_WriteResultCallback) (const char *jobId, uint32_t code) ``` **描述** 文件回写回调。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | jobId | 打印任务id。 | | code | 文件回写结果。 | ## 枚举类型说明 ### Print_ErrorCode ``` enum Print_ErrorCode ``` **描述** 枚举错误码. **起始版本:** 12 | 枚举值 | 描述 | | -------- | -------- | | PRINT_ERROR_NONE | 成功。 | | PRINT_ERROR_NO_PERMISSION | 没有权限。 | | PRINT_ERROR_INVALID_PARAMETER | 无效参数。 | | PRINT_ERROR_GENERIC_FAILURE | 内部错误。 | | PRINT_ERROR_RPC_FAILURE | rpc传输错误。 | | PRINT_ERROR_SERVER_FAILURE | 打印服务错误。 | | PRINT_ERROR_INVALID_EXTENSION | 无效打印扩展。 | | PRINT_ERROR_INVALID_PRINTER | 无效打印机。 | | PRINT_ERROR_INVALID_PRINT_JOB | 无效打印任务。 | | PRINT_ERROR_FILE_IO | 文件读写错误。 | | PRINT_ERROR_UNKNOWN | 未知错误。 | ### Print_JobDocAdapterState ``` enum Print_JobDocAdapterState ``` **描述** 打印文档任务的状态。 **起始版本:** 13 | 枚举值 | 描述 | | -------- | -------- | | PRINT_DOC_ADAPTER_PREVIEW_ABILITY_DESTROY | 打印预览界面销毁。 | | PRINT_DOC_ADAPTER_PRINT_TASK_SUCCEED | 打印任务执行成功。 | | PRINT_DOC_ADAPTER_PRINT_TASK_FAIL | 打印任务执行失败。 | | PRINT_DOC_ADAPTER_PRINT_TASK_CANCEL | 打印任务被取消。 | | PRINT_DOC_ADAPTER_PRINT_TASK_BLOCK | 打印任务阻塞。 | | PRINT_DOC_ADAPTER_PREVIEW_ABILITY_DESTROY_FOR_CANCELED | 预览界面点击取消按钮界面退出。 | | PRINT_DOC_ADAPTER_PREVIEW_ABILITY_DESTROY_FOR_STARTED | 预览界面点击打印按钮界面退出。 | ## 函数说明 ### OH_Print_StartPrintByNative() ``` Print_ErrorCode OH_Print_StartPrintByNative (const char * printJobName, Print_PrintDocCallback printDocCallback, void * context ) ``` **描述** 拉起打印预览界面接口。 **系统能力:** SystemCapability.Print.PrintFramework **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | printJobName | 打印任务名称。 | | printDocCallback | 打印文档任务回调结构体。 | | context | 调用接口的ability的上下文。 | **Permission:** ohos.permission.PRINT **返回:** Print_ErrorCode#PRINT_ERROR_NONE:执行成功。 PRINT_ERROR_NO_PERMISSION:需要配置ohos.permission.PRINT权限。 PRINT_ERROR_RPC_FAILURE:无法连接打印服务。