• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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