• 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| [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