1# OH_Print 2 3## 概述 4 5向应用提供使用CAPI访问打印系统的能力。 6 7**起始版本:** 12 8 9## 汇总 10 11### 文件 12 13| 名称 | 描述 | 14| -------- | -------- | 15| [ohprint.h](ohprint_8h.md) |声明用于发现和连接打印机、从打印机打印文件、查询已添加打印机的列表及其中的打印机信息等API。 | 16 17### 类型定义 18 19| 名称 | 描述 | 20| -------- | -------- | 21| [Print_StringList](#print_stringlist) | 打印机设备列表。 | 22| [Print_Property](#print_property) | 打印机属性。 | 23| [Print_PropertyList](#print_propertylist) | 打印机属性列表。 | 24| [Print_Resolution](#print_resolution) | 打印分辨率单元。 | 25| [Print_Margin](#print_margin) | 打印边距。 | 26| [Print_PageSize](#print_pagesize) | 打印纸张尺寸。 | 27| [Print_PrinterCapability](#print_printercapability) | 打印机能力。 | 28| [Print_DefaultValue](#print_defaultvalue) | 打印默认信息。 | 29| [Print_PrinterInfo](#print_printerinfo) | 打印机信息。 | 30| [Print_PrintJob](#print_printjob) | 打印任务。 | 31| [Print_Range](#print_range) | 打印范围。 | 32| [Print_PrintAttributes](#print_printattributes) | 打印属性。 | 33| [Print_WriteResultCallback](#print_writeresultcallback) | 写结果回调。 | 34| [Print_OnStartLayoutWrite](#print_onstartlayoutwrite) | 开始布局回调。 | 35| [Print_OnJobStateChanged](#print_onjobstatechanged) | 打印任务状态回调。 | 36| [Print_PrintDocCallback](#print_printdoccallback) | 打印文件状态回调。 | 37| [Print_PrinterDiscoveryCallback](#print_printerdiscoverycallback) | 打印机发现回调。 | 38| [Print_PrinterChangeCallback](#print_printerchangecallback) | 打印机状态变化回调。 | 39 40### 枚举类型 41 42| 名称 | 描述 | 43| -------- | -------- | 44| [Print_ErrorCode](#print_errorcode) | 枚举错误码。 | 45| [Print_PrinterState](#print_printerstate) | 打印机状态码。 | 46| [Print_DiscoveryEvent](#print_discoveryevent) | 打印机发现事件。 | 47| [Print_PrinterEvent](#print_printerevent) | 打印机状态改变事件。 | 48| [Print_DuplexMode](#print_duplexmode) | 打印单双面模式。 | 49| [Print_ColorMode](#print_colormode) | 打印色彩模式。 | 50| [Print_OrientationMode](#print_orientationmode) | 打印方向。 | 51| [Print_Quality](#print_quality) | 打印质量。 | 52| [Print_DocumentFormat](#print_documentformat) | 打印机文件类型。 | 53| [Print_JobDocAdapterState](#print_jobdocadapterstate) | 打印任务状态。 | 54 55### 函数 56 57| 名称 | 描述 | 58| -------- | -------- | 59| [OH_Print_Init](#oh_print_init) | 拉起打印服务,初始化打印客户端,并建立到打印服务的连接。 | 60| [OH_Print_Release](#oh_print_release) | 关闭与打印服务的连接,解除注册的回调,并释放打印客户端资源。 | 61| [OH_Print_StartPrinterDiscovery](#oh_print_startprinterdiscovery) | 启动发现打印机。 | 62| [OH_Print_StopPrinterDiscovery](#oh_print_stopprinterdiscovery) | 停止发现打印机。 | 63| [OH_Print_ConnectPrinter](#oh_print_connectprinter) | 使用打印机id连接打印机。 | 64| [OH_Print_StartPrintJob](#oh_print_startprintjob) | 启动打印任务。 | 65| [OH_Print_RegisterPrinterChangeListener](#oh_print_registerprinterchangelistener) | 注册打印机状态变化事件。 | 66| [OH_Print_UnregisterPrinterChangeListener](#oh_print_unregisterprinterchangelistener) | 注销打印机状态变化事件。 | 67| [OH_Print_QueryPrinterList](#oh_print_queryprinterlist) | 查询打印机列表。 | 68| [OH_Print_ReleasePrinterList](#oh_print_releaseprinterlist) | 释放打印机列表。 | 69| [OH_Print_QueryPrinterInfo](#oh_print_queryprinterinfo) | 查询打印机信息。 | 70| [OH_Print_ReleasePrinterInfo](#oh_print_releaseprinterinfo) | 释放打印机信息内存。 | 71| [OH_Print_LaunchPrinterManager](#oh_print_launchprintermanager) | 启动打印机管理窗口。 | 72| [OH_Print_QueryPrinterProperties](#oh_print_queryprinterproperties) | 查询打印机属性。 | 73| [OH_Print_ReleasePrinterProperties](#oh_print_releaseprinterproperties) | 释放打印机属性。 | 74| [OH_Print_UpdatePrinterProperties](#oh_print_updateprinterproperties) | 更新打印机属性。 | 75| [OH_Print_RestorePrinterProperties](#oh_print_restoreprinterproperties) | 根据属性关键字列表将打印机属性恢复为默认设置。 | 76| [OH_Print_StartPrintByNative](#oh_print_startprintbynative) | 启动打印。 | 77 78## 类型定义说明 79 80### Print_StringList 81 82**描述** 83 84打印机设备列表。 85 86**起始版本:** 12 87 88| 成员 | 描述 | 89| ------------ | -------- | 90| count | 字符串个数。 | 91| list | 字符串指针数组。 | 92 93### Print_Property 94 95**描述** 96 97打印机属性。 98 99**起始版本:** 12 100 101| 成员 | 描述 | 102| -------- | ----------------------- | 103| key | 属性关键字。 | 104| value | 属性值。 | 105 106### Print_PropertyList 107 108**描述** 109 110打印机属性列表。 111 112**起始版本:** 12 113 114| 成员 | 描述 | 115| ------------ | ------------ | 116| count | 属性个数。 | 117| list | 属性指针数组。 | 118 119### Print_Resolution 120 121**描述** 122 123打印分辨率单元。 124 125**起始版本:** 12 126 127| 参数 | 描述 | 128| ----------- | ---------- | 129| horizontalDpi | 水平分辨率(dpi)。 | 130| verticalDpi | 垂直分辨率(dpi)。 | 131 132### Print_Margin 133 134**描述** 135 136打印边距。 137 138**起始版本:** 12 139 140| 参数 | 描述 | 141| ----------- | ---------- | 142| leftMargin | 左边距(微米)。 | 143| topMargin | 顶部边距(微米)。 | 144| rightMargin | 右边距(微米)。 | 145| bottomMargin | 底边距(微米)。 | 146 147### Print_PageSize 148 149**描述** 150 151打印纸张尺寸。 152 153**起始版本:** 12 154 155| 参数 | 描述 | 156| ----------- | ---------- | 157| id | 纸张编号。 | 158| name | 纸张名称。 | 159| width | 纸张宽度(微米)。 | 160| height | 纸张高度(微米)。 | 161 162### Print_PrinterCapability 163 164**描述** 165 166打印机能力。 167 168**起始版本:** 12 169 170| 参数 | 描述 | 171| ----------- | ---------- | 172| supportedColorModes | 支持的颜色模式列表。 | 173| supportedColorModesCount | 支持的颜色模式个数。 | 174| supportedDuplexModes | 支持的双面模式列表。 | 175| supportedDuplexModesCount | 支持的双面模式个数。 | 176| supportedPageSizes | 支持的纸张尺寸列表。 | 177| supportedPageSizesCount | 支持的纸张尺寸个数。 | 178| supportedMediaTypes | 支持的介质类型(JSON字符串数组格式)。 | 179| supportedQualities | 支持的打印质量列表。 | 180| supportedQualitiesCount | 支持的打印质量个数。 | 181| supportedPaperSources | 支持的纸张来源(JSON字符串数组格式)。 | 182| supportedCopies | 支持的最大打印份数。 | 183| supportedResolutions | 支持的分辨率列表。 | 184| supportedResolutionsCount | 支持的分辨率个数。 | 185| supportedOrientations | 支持的打印方向列表。 | 186| supportedOrientationsCount | 支持的打印方向个数。 | 187| advancedCapability | 高级能力(JSON格式)。 | 188 189### Print_DefaultValue 190 191**描述** 192 193打印机默认信息。 194 195**起始版本:** 12 196 197| 参数 | 描述 | 198| ----------- | ---------- | 199| defaultColorMode | 默认颜色模式。 | 200| defaultDuplexMode | 默认双面模式。 | 201| defaultMediaType | 默认介质类型。 | 202| defaultPageSizeId | 默认纸张尺寸ID。 | 203| defaultMargin | 默认边距。 | 204| defaultPaperSource | 默认纸张来源。 | 205| defaultPrintQuality | 默认打印质量。 | 206| defaultCopies | 默认打印份数。 | 207| defaultResolution | 默认分辨率。 | 208| defaultOrientation | 默认打印方向。 | 209| otherDefaultValues | 其他默认值(JSON格式)。 | 210 211### Print_PrinterInfo 212 213**描述** 214 215打印机信息。 216 217**起始版本:** 12 218 219| 参数 | 描述 | 220| ----------- | ---------- | 221| printerState | 打印机状态。 | 222| capability | 打印机能力。 | 223| defaultValue | 打印机默认属性。 | 224| isDefaultPrinter | 是否是默认打印机。 | 225| printerId | 打印机ID。 | 226| printerName | 打印机名称。 | 227| description | 打印机描述。 | 228| location | 打印机位置。 | 229| makeAndModel | 打印机制造商和型号信息。 | 230| printerUri | 打印机URI。 | 231| detailInfo | 详细信息(JSON格式)。 | 232 233### Print_PrintJob 234 235**描述** 236 237打印任务。 238 239**起始版本:** 12 240 241| 参数 | 描述 | 242| ----------- | ---------- | 243| jobName | 打印任务名称。 | 244| fdList | 打印文件描述符数组。 | 245| fdListCount | 打印文件描述符数量。 | 246| printerId | 打印机ID。 | 247| copyNumber | 打印份数。 | 248| paperSource | 纸张来源。 | 249| mediaType | 介质类型。 | 250| pageSizeId | 纸张尺寸ID。 | 251| colorMode | 颜色模式。 | 252| duplexMode | 双面模式。 | 253| resolution | 分辨率。 | 254| printMargin | 打印边距。 | 255| borderless | 是否无边距打印。 | 256| orientationMode | 打印方向。 | 257| printQuality | 打印质量。 | 258| documentFormat | 文档格式。 | 259| advancedOptions | 高级选项(JSON格式)。 | 260 261### Print_Range 262 263**描述** 264 265打印范围。 266 267**起始版本:** 13 268 269| 参数 | 描述 | 270| ----------- | ---------- | 271| startPage | 打印起始页码。 | 272| endPage | 打印结束页码。 | 273| pagesArrayLen | 打印页数组长度。 | 274| pagesArray | 打印页数组。 | 275 276### Print_PrintAttributes 277 278**描述** 279 280打印属性。 281 282**起始版本:** 13 283 284| 参数 | 描述 | 285| ----------- | ---------- | 286| pageRange | 打印范围。 | 287| pageSize | 纸张尺寸。 | 288| pageMargin | 页边距。 | 289| copyNumber | 打印份数。 | 290| duplexMode | 双面模式。 | 291| colorMode | 颜色模式。 | 292| isSequential | 是否顺序打印。 | 293| isLandscape | 是否横向打印。 | 294| hasOption | 是否有打印选项。 | 295| options | 打印选项(256字节)。 | 296 297### Print_WriteResultCallback 298 299**描述** 300 301写结果回调。 302 303**起始版本:** 13 304 305**参数:** 306 307| 名称 | 描述 | 308| --------- | ---------- | 309| jobId | 打印任务ID。 | 310| code | 写结果状态码。 | 311 312### Print_OnStartLayoutWrite 313 314**描述** 315 316开始布局回调。 317 318**起始版本:** 13 319 320**参数:** 321 322| 名称 | 描述 | 323| --------- | ---------- | 324| jobId | 打印任务ID。 | 325| fd | 文件描述符。 | 326| oldAttrs | 上一个打印属性。 | 327| newAttrs | 当前打印属性。 | 328| writeCallback | 写结果回调函数。 | 329 330### Print_OnJobStateChanged 331 332**描述** 333 334打印任务状态变化回调。 335 336**起始版本:** 13 337 338**参数:** 339 340| 名称 | 描述 | 341| --------- | ---------- | 342| jobId | 打印任务ID。 | 343| state | 打印任务状态。 | 344 345### Print_PrintDocCallback 346 347**描述** 348 349打印文档状态回调。 350 351**起始版本:** 13 352 353| 参数 | 描述 | 354| ----------- | ---------- | 355| startLayoutWriteCb | 开始布局写回调。 | 356| jobStateChangedCb | 任务状态变化回调。 | 357 358### Print_PrinterDiscoveryCallback 359 360**描述** 361 362打印机发现回调。 363 364**起始版本:** 12 365 366**参数:** 367 368| 名称 | 描述 | 369| --------- | ---------- | 370| event | 发现事件。 | 371| printerInfo | 打印机信息。 | 372 373### Print_PrinterChangeCallback 374 375**描述** 376 377打印机状态变化回调。 378 379**起始版本:** 12 380 381**参数:** 382 383| 名称 | 描述 | 384| --------- | ---------- | 385| event | 变化事件。 | 386| printerInfo | 打印机信息。 | 387 388## 枚举类型说明 389 390### Print_ErrorCode 391 392**描述** 393 394枚举错误码。 395 396**起始版本:** 12 397 398| 枚举值 | 描述 | 值 | 399| -------- | -------- | -------- | 400| PRINT_ERROR_NONE | 操作成功。 | 0 | 401| PRINT_ERROR_NO_PERMISSION | 权限验证失败。 | 201 | 402| PRINT_ERROR_INVALID_PARAMETER | 无效参数。 | 401 | 403| PRINT_ERROR_GENERIC_FAILURE | 一般内部错误。 | 24300001 | 404| PRINT_ERROR_RPC_FAILURE | RPC通信错误。 | 24300002 | 405| PRINT_ERROR_SERVER_FAILURE | 服务端错误。 | 24300003 | 406| PRINT_ERROR_INVALID_EXTENSION | 无效扩展。 | 24300004 | 407| PRINT_ERROR_INVALID_PRINTER | 无效打印机。 | 24300005 | 408| PRINT_ERROR_INVALID_PRINT_JOB | 无效打印任务。 | 24300006 | 409| PRINT_ERROR_FILE_IO | 文件读写失败。 | 24300007 | 410| PRINT_ERROR_UNKNOWN | 未知错误。 | 24300255 | 411 412### Print_PrinterState 413 414**描述** 415 416打印机状态码。 417 418**起始版本:** 12 419 420| 枚举值 | 描述 | 421| -------- | -------- | 422| PRINTER_IDLE | 打印机空闲。 | 423| PRINTER_BUSY | 打印机忙碌。 | 424| PRINTER_UNAVAILABLE | 打印机不可用。 | 425 426### Print_DiscoveryEvent 427 428**描述** 429 430打印机发现事件。 431 432**起始版本:** 12 433 434| 枚举值 | 描述 | 435| -------- | -------- | 436| PRINTER_DISCOVERED | 发现打印机。 | 437| PRINTER_LOST | 丢失打印机。 | 438| PRINTER_CONNECTING | 正在连接打印机。 | 439| PRINTER_CONNECTED | 已连接打印机。 | 440 441### Print_PrinterEvent 442 443**描述** 444 445打印机事件。 446 447**起始版本:** 12 448 449| 枚举值 | 描述 | 450| -------- | -------- | 451| PRINTER_ADDED | 添加打印机。 | 452| PRINTER_DELETED | 删除打印机。 | 453| PRINTER_STATE_CHANGED | 打印机状态改变。 | 454| PRINTER_INFO_CHANGED | 打印机信息变更。 | 455| PRINTER_PREFERENCE_CHANGED | 打印机首选项变更。 | 456 457### Print_DuplexMode 458 459**描述** 460 461打印双面模式。 462 463**起始版本:** 12 464 465| 枚举值 | 描述 | 466| -------- | -------- | 467| DUPLEX_MODE_ONE_SIDED | 单面打印。 | 468| DUPLEX_MODE_TWO_SIDED_LONG_EDGE | 长边双面打印。 | 469| DUPLEX_MODE_TWO_SIDED_SHORT_EDGE | 短边双面打印。 | 470 471### Print_ColorMode 472 473**描述** 474 475打印色彩模式。 476 477**起始版本:** 12 478 479| 枚举值 | 描述 | 480| -------- | -------- | 481| COLOR_MODE_MONOCHROME | 单色模式。 | 482| COLOR_MODE_COLOR | 彩色模式。 | 483| COLOR_MODE_AUTO | 自动模式。 | 484 485### Print_OrientationMode 486 487**描述** 488 489打印方向。 490 491**起始版本:** 12 492 493| 枚举值 | 描述 | 494| -------- | -------- | 495| ORIENTATION_MODE_PORTRAIT | 纵向。 | 496| ORIENTATION_MODE_LANDSCAPE | 横向。 | 497| ORIENTATION_MODE_REVERSE_LANDSCAPE | 反向横向。 | 498| ORIENTATION_MODE_REVERSE_PORTRAIT | 反向纵向。 | 499| ORIENTATION_MODE_NONE | 未指定。 | 500 501### Print_Quality 502 503**描述** 504 505打印质量。 506 507**起始版本:** 12 508 509| 枚举值 | 描述 | 510| -------- | -------- | 511| PRINT_QUALITY_DRAFT | 草稿质量。 | 512| PRINT_QUALITY_NORMAL | 普通质量。 | 513| PRINT_QUALITY_HIGH | 高质量。 | 514 515### Print_DocumentFormat 516 517**描述** 518 519文档格式。 520 521**起始版本:** 12 522 523| 枚举值 | 描述 | MIME类型 | 524| -------- | -------- | -------- | 525| DOCUMENT_FORMAT_AUTO | 自动识别。 | application/octet-stream. | 526| DOCUMENT_FORMAT_JPEG | JPEG图像。 | image/jpeg. | 527| DOCUMENT_FORMAT_PDF | PDF文档。 | application/pdf. | 528| DOCUMENT_FORMAT_POSTSCRIPT | PostScript文档。 | application/postscript. | 529| DOCUMENT_FORMAT_TEXT | 纯文本。 | text/plain. | 530 531### Print_JobDocAdapterState 532 533**描述** 534 535打印任务文档适配器状态。 536 537**起始版本:** 13 538 539| 枚举值 | 描述 | 540| -------- | -------- | 541| PRINT_DOC_ADAPTER_PREVIEW_ABILITY_DESTROY | 打印预览能力销毁。 | 542| PRINT_DOC_ADAPTER_PRINT_TASK_SUCCEED | 打印任务成功。 | 543| PRINT_DOC_ADAPTER_PRINT_TASK_FAIL | 打印任务失败。 | 544| PRINT_DOC_ADAPTER_PRINT_TASK_CANCEL | 打印任务取消。 | 545| PRINT_DOC_ADAPTER_PRINT_TASK_BLOCK | 打印任务阻塞。 | 546| PRINT_DOC_ADAPTER_PREVIEW_ABILITY_DESTROY_FOR_CANCELED | 因取消导致的预览能力销毁。 | 547| PRINT_DOC_ADAPTER_PREVIEW_ABILITY_DESTROY_FOR_STARTED | 因任务开始导致的预览能力销毁。 | 548 549## 函数说明 550 551### OH_Print_Init() 552 553```cpp 554Print_ErrorCode OH_Print_Init(); 555``` 556 557**描述** 558 559拉起打印服务,初始化打印客户端,并建立到打印服务的连接。 560 561**权限:** ohos.permission.PRINT 562 563**系统能力:** SystemCapability.Print.PrintFramework 564 565**起始版本:** 12 566 567**返回值:** 568 569| 错误码 | 描述 | 570| -------- | -------- | 571| PRINT_ERROR_NONE | 操作成功。 | 572| PRINT_ERROR_NO_PERMISSION | 缺少打印权限。 | 573| PRINT_ERROR_RPC_FAILURE | 无法连接打印服务。 | 574| PRINT_ERROR_SERVER_FAILURE | CUPS服务无法启动。 | 575 576### OH_Print_Release() 577 578```cpp 579Print_ErrorCode OH_Print_Release(); 580``` 581 582**描述** 583 584关闭与打印服务的连接,解除注册的回调,并释放打印客户端资源。 585 586**系统能力:** SystemCapability.Print.PrintFramework 587 588**起始版本:** 12 589 590**返回值:** 591 592| 错误码 | 描述 | 593| -------- | -------- | 594| PRINT_ERROR_NONE | 操作成功。 | 595 596### OH_Print_StartPrinterDiscovery() 597 598```cpp 599Print_ErrorCode OH_Print_StartPrinterDiscovery(Print_PrinterDiscoveryCallback callback); 600``` 601 602**描述** 603 604启动打印机发现过程。 605 606**权限:** ohos.permission.PRINT 607 608**系统能力:** SystemCapability.Print.PrintFramework 609 610**起始版本:** 12 611 612**参数:** 613 614| 名称 | 描述 | 615| -------- | -------- | 616| callback | 打印机发现事件回调函数。 | 617 618**返回值:** 619 620| 错误码 | 描述 | 621| -------- | -------- | 622| PRINT_ERROR_NONE | 操作成功。 | 623| PRINT_ERROR_NO_PERMISSION | 缺少打印权限。 | 624| PRINT_ERROR_RPC_FAILURE | 无法连接打印服务。 | 625| PRINT_ERROR_SERVER_FAILURE | 从BMS查询打印扩展列表失败。 | 626| PRINT_ERROR_INVALID_EXTENSION | 没有可用的打印扩展。 | 627 628### OH_Print_StopPrinterDiscovery() 629 630```cpp 631Print_ErrorCode OH_Print_StopPrinterDiscovery(); 632``` 633 634**描述** 635 636停止打印机发现过程。 637 638**权限:** ohos.permission.PRINT 639 640**系统能力:** SystemCapability.Print.PrintFramework 641 642**起始版本:** 12 643 644**返回值:** 645 646| 错误码 | 描述 | 647| -------- | -------- | 648| PRINT_ERROR_NONE | 操作成功。 | 649| PRINT_ERROR_NO_PERMISSION | 缺少打印权限。 | 650| PRINT_ERROR_RPC_FAILURE | 无法连接打印服务。 | 651 652### OH_Print_ConnectPrinter() 653 654```cpp 655Print_ErrorCode OH_Print_ConnectPrinter(const char *printerId); 656``` 657 658**描述** 659 660使用打印机ID连接打印机。 661 662**权限:** ohos.permission.PRINT 663 664**系统能力:** SystemCapability.Print.PrintFramework 665 666**起始版本:** 12 667 668**参数:** 669 670| 名称 | 描述 | 671| -------- | -------- | 672| printerId | 要连接的打印机ID。 | 673 674**返回值:** 675 676| 错误码 | 描述 | 677| -------- | -------- | 678| PRINT_ERROR_NONE | 操作成功。 | 679| PRINT_ERROR_NO_PERMISSION | 缺少打印权限。 | 680| PRINT_ERROR_RPC_FAILURE | 无法连接打印服务。 | 681| PRINT_ERROR_INVALID_PRINTER | 打印机不在已发现列表中。 | 682| PRINT_ERROR_SERVER_FAILURE | 无法找到负责该打印机的扩展。 | 683 684### OH_Print_StartPrintJob() 685 686```cpp 687Print_ErrorCode OH_Print_StartPrintJob(const Print_PrintJob *printJob); 688``` 689 690**描述** 691 692启动打印任务。 693 694**权限:** ohos.permission.PRINT 695 696**系统能力:** SystemCapability.Print.PrintFramework 697 698**起始版本:** 12 699 700**参数:** 701 702| 名称 | 描述 | 703| -------- | -------- | 704| printJob | 指向包含打印任务信息的Print_PrintJob结构体指针 | 705 706**返回值:** 707 708| 错误码 | 描述 | 709| -------- | -------- | 710| PRINT_ERROR_NONE | 操作成功。 | 711| PRINT_ERROR_NO_PERMISSION | 缺少打印权限。 | 712| PRINT_ERROR_RPC_FAILURE | 无法连接打印服务。 | 713| PRINT_ERROR_INVALID_PRINTER | 打印机不在已连接列表中。 | 714| PRINT_ERROR_SERVER_FAILURE | 无法在打印服务中创建打印任务。 | 715| PRINT_ERROR_INVALID_PRINT_JOB | 无法在任务队列中找到该任务。 | 716 717### OH_Print_RegisterPrinterChangeListener() 718 719```cpp 720Print_ErrorCode OH_Print_RegisterPrinterChangeListener(Print_PrinterChangeCallback callback); 721``` 722 723**描述** 724 725注册打印机状态变化监听器。 726 727**权限:** ohos.permission.PRINT 728 729**系统能力:** SystemCapability.Print.PrintFramework 730 731**起始版本:** 12 732 733**参数:** 734 735| 名称 | 描述 | 736| -------- | -------- | 737| callback | 打印机状态变化回调函数。 | 738 739**返回值:** 740 741| 错误码 | 描述 | 742| -------- | -------- | 743| PRINT_ERROR_NONE | 操作成功。 | 744| PRINT_ERROR_NO_PERMISSION | 缺少打印权限。 | 745| PRINT_ERROR_RPC_FAILURE | 无法连接打印服务。 | 746 747### OH_Print_UnregisterPrinterChangeListener() 748 749```cpp 750void OH_Print_UnregisterPrinterChangeListener(); 751``` 752 753**描述** 754 755注销打印机状态变化监听器。 756 757**权限:** ohos.permission.PRINT 758 759**系统能力:** SystemCapability.Print.PrintFramework 760 761**起始版本:** 12 762 763### OH_Print_QueryPrinterList() 764 765```cpp 766Print_ErrorCode OH_Print_QueryPrinterList(Print_StringList *printerIdList); 767``` 768 769**描述** 770 771查询已添加的打印机列表。 772 773**权限:** ohos.permission.PRINT 774 775**系统能力:** SystemCapability.Print.PrintFramework 776 777**起始版本:** 12 778 779**参数:** 780 781| 名称 | 描述 | 782| -------- | -------- | 783| printerIdList | 用于存储查询结果的Print_StringList指针。 | 784 785**返回值:** 786 787| 错误码 | 描述 | 788| -------- | -------- | 789| PRINT_ERROR_NONE | 操作成功。 | 790| PRINT_ERROR_NO_PERMISSION | 缺少打印权限。 | 791| PRINT_ERROR_INVALID_PARAMETER | printerIdList为NULL。 | 792| PRINT_ERROR_INVALID_PRINTER | 无法查询到任何已连接打印机。 | 793| PRINT_ERROR_GENERIC_FAILURE | 无法复制打印机ID列表。 | 794 795### OH_Print_ReleasePrinterList() 796 797```cpp 798void OH_Print_ReleasePrinterList(Print_StringList *printerIdList); 799``` 800 801**描述** 802 803释放查询打印机列表时分配的内存。 804 805**系统能力:** SystemCapability.Print.PrintFramework 806 807**起始版本:** 12 808 809**参数:** 810 811| 名称 | 描述 | 812| -------- | -------- | 813| printerIdList | 要释放的打印机ID列表。 | 814 815### OH_Print_QueryPrinterInfo() 816 817```cpp 818Print_ErrorCode OH_Print_QueryPrinterInfo(const char *printerId, Print_PrinterInfo **printerInfo); 819``` 820 821**描述** 822 823根据打印机ID查询打印机信息。 824 825**权限:** ohos.permission.PRINT 826 827**系统能力:** SystemCapability.Print.PrintFramework 828 829**起始版本:** 12 830 831**参数:** 832 833| 名称 | 描述 | 834| -------- | -------- | 835| printerId | 要查询的打印机ID。 | 836| printerInfo | 用于存储查询结果的Print_PrinterInfo指针。 | 837 838**返回值:** 839 840| 错误码 | 描述 | 841| -------- | -------- | 842| PRINT_ERROR_NONE | 操作成功。 | 843| PRINT_ERROR_NO_PERMISSION | 缺少打印权限。 | 844| PRINT_ERROR_RPC_FAILURE | 无法连接打印服务。 | 845| PRINT_ERROR_INVALID_PARAMETER | printerId或printerInfo为NULL。 | 846| PRINT_ERROR_INVALID_PRINTER | 无法在已连接打印机列表中找到该打印机。 | 847 848### OH_Print_ReleasePrinterInfo() 849 850```cpp 851void OH_Print_ReleasePrinterInfo(Print_PrinterInfo *printerInfo); 852``` 853 854**描述** 855 856释放查询打印机信息时分配的内存。 857 858**系统能力:** SystemCapability.Print.PrintFramework 859 860**起始版本:** 12 861 862**参数:** 863 864| 名称 | 描述 | 865| -------- | -------- | 866| printerInfo | 要释放的打印机信息指针。 | 867 868### OH_Print_LaunchPrinterManager() 869 870```cpp 871Print_ErrorCode OH_Print_LaunchPrinterManager(); 872``` 873 874**描述** 875 876启动系统打印机管理窗口。 877 878**系统能力:** SystemCapability.Print.PrintFramework 879 880**起始版本:** 12 881 882**返回值:** 883 884| 错误码 | 描述 | 885| -------- | -------- | 886| PRINT_ERROR_NONE | 操作成功。 | 887| PRINT_ERROR_GENERIC_FAILURE | 无法启动打印机管理窗口。 | 888 889### OH_Print_QueryPrinterProperties() 890 891```cpp 892Print_ErrorCode OH_Print_QueryPrinterProperties(const char *printerId, 893 const Print_StringList *propertyKeyList, 894 Print_PropertyList *propertyList); 895``` 896 897**描述** 898 899根据属性关键字列表查询打印机属性值。 900 901**权限:** ohos.permission.PRINT 902 903**系统能力:** SystemCapability.Print.PrintFramework 904 905**起始版本:** 12 906 907**参数:** 908 909| 名称 | 描述 | 910| -------- | -------- | 911| printerId | 要查询的打印机ID。 | 912| propertyKeyList | 要查询的属性关键字列表。 | 913| propertyList | 用于存储查询结果的属性列表。 | 914 915**返回值:** 916 917| 错误码 | 描述 | 918| -------- | -------- | 919| PRINT_ERROR_NONE | 操作成功。 | 920| PRINT_ERROR_NO_PERMISSION | 缺少打印权限。 | 921| PRINT_ERROR_INVALID_PARAMETER | 参数为NULL或关键字列表为空。 | 922| PRINT_ERROR_INVALID_PRINTER | 找不到指定打印机的属性。 | 923| PRINT_ERROR_GENERIC_FAILURE | 无法复制打印机属性。 | 924 925### OH_Print_ReleasePrinterProperties() 926 927```cpp 928void OH_Print_ReleasePrinterProperties(Print_PropertyList *propertyList); 929``` 930 931**描述** 932 933释放查询打印机属性时分配的内存。 934 935**系统能力:** SystemCapability.Print.PrintFramework 936 937**起始版本:** 12 938 939**参数:** 940 941| 名称 | 描述 | 942| -------- | -------- | 943| propertyList | 要释放的属性列表指针。 | 944 945### OH_Print_UpdatePrinterProperties() 946 947```cpp 948Print_ErrorCode OH_Print_UpdatePrinterProperties(const char *printerId, 949 const Print_PropertyList *propertyList); 950``` 951 952**描述** 953 954根据属性键值对列表设置打印机属性。 955 956**权限:** ohos.permission.PRINT 957 958**系统能力:** SystemCapability.Print.PrintFramework 959 960**起始版本:** 12 961 962**参数:** 963 964| 名称 | 描述 | 965| -------- | -------- | 966| printerId | 要设置的打印机ID。 | 967| propertyList | 要设置的属性列表。 | 968 969**返回值:** 970 971| 错误码 | 描述 | 972| -------- | -------- | 973| PRINT_ERROR_NONE | 操作成功。 | 974| PRINT_ERROR_NO_PERMISSION | 缺少打印权限。 | 975| PRINT_ERROR_RPC_FAILURE | 无法连接打印服务。 | 976 977### OH_Print_RestorePrinterProperties() 978 979```cpp 980Print_ErrorCode OH_Print_RestorePrinterProperties(const char *printerId, 981 const Print_StringList *propertyKeyList); 982``` 983 984**描述** 985 986根据属性关键字列表将打印机属性恢复为默认设置。 987 988**权限:** ohos.permission.PRINT 989 990**系统能力:** SystemCapability.Print.PrintFramework 991 992**起始版本:** 12 993 994**参数:** 995 996| 名称 | 描述 | 997| -------- | -------- | 998| printerId | 要恢复的打印机ID。 | 999| propertyKeyList | 要恢复的属性关键字列表。 | 1000 1001**返回值:** 1002 1003| 错误码 | 描述 | 1004| -------- | -------- | 1005| PRINT_ERROR_NONE | 操作成功。 | 1006| PRINT_ERROR_NO_PERMISSION | 缺少打印权限。 | 1007| PRINT_ERROR_RPC_FAILURE | 无法连接打印服务。 | 1008 1009### OH_Print_StartPrintByNative() 1010 1011```cpp 1012Print_ErrorCode OH_Print_StartPrintByNative(const char *printJobName, 1013 Print_PrintDocCallback printDocCallback, 1014 void *context); 1015``` 1016 1017**描述** 1018 1019启动打印服务。 1020 1021**权限:** ohos.permission.PRINT 1022 1023**系统能力:** SystemCapability.Print.PrintFramework 1024 1025**起始版本:** 13 1026 1027**参数:** 1028 1029| 名称 | 描述 | 1030| -------- | -------- | 1031| printJobName | 打印任务名称。 | 1032| printDocCallback | 打印文档状态回调。 | 1033| context | 调用者应用上下文。 | 1034 1035**返回值:** 1036 1037| 错误码 | 描述 | 1038| -------- | -------- | 1039| PRINT_ERROR_NONE | 操作成功。 | 1040| PRINT_ERROR_NO_PERMISSION | 缺少打印权限。 | 1041| PRINT_ERROR_RPC_FAILURE | 无法连接打印服务。 | 1042