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