1# @ohos.app.ability.PrintExtensionAbility (打印扩展能力)(系统接口)
2
3该模块为打印扩展能力的操作API,提供调用打印扩展能力的接口。
4
5> **说明:**
6> 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
7> 当前界面仅包含本模块的系统接口,其他公开接口参见[@ohos.app.ability.PrintExtensionAbility (打印扩展能力)](./js-apis-app-ability-PrintExtensionAbility.md)。
8> 本模块接口仅可在Stage模型下使用。
9
10## 导入模块
11
12```ts
13import PrintExtensionAbility from '@ohos.app.ability.PrintExtensionAbility';
14```
15
16## onStartPrintJob
17
18onStartPrintJob(jobInfo: print.PrintJob): void
19
20开始打印任务时调用。
21
22**系统能力:** SystemCapability.Print.PrintFramework
23
24**参数:**
25| **参数名** | **类型** | **必填** | **说明** |
26| -------- | -------- | -------- | -------- |
27| jobInfo | print.PrintJob | 是 | 表示打印任务的信息 |
28
29**错误码:**
30
31以下错误码的详细介绍请参见[打印服务错误码](./errorcode-print.md)。
32
33| 错误码ID | 错误信息                                    |
34| -------- | ------------------------------------------- |
35| 202 | not system application |
36
37**示例:**
38
39```ts
40import PrintExtensionAbility from '@ohos.app.ability.PrintExtensionAbility';
41import print from '@ohos.print';
42
43export default class HWPrintExtension extends PrintExtensionAbility {
44    onStartPrintJob(jobInfo: print.PrintJob): void {
45        console.log('onStartPrintJob, jobId is: ' + jobInfo.jobId);
46        // ...
47    }
48}
49```
50
51## onCancelPrintJob
52
53onCancelPrintJob(jobInfo: print.PrintJob): void
54
55移除已开始的打印任务时调用。
56
57**系统能力:** SystemCapability.Print.PrintFramework
58
59**参数:**
60| **参数名** | **类型** | **必填** | **说明** |
61| -------- | -------- | -------- | -------- |
62| jobInfo | print.PrintJob | 是 | 表示打印任务的信息 |
63
64**错误码:**
65
66以下错误码的详细介绍请参见[打印服务错误码](./errorcode-print.md)。
67
68| 错误码ID | 错误信息                                    |
69| -------- | ------------------------------------------- |
70| 202 | not system application |
71
72**示例:**
73
74```ts
75import PrintExtensionAbility from '@ohos.app.ability.PrintExtensionAbility';
76import print from '@ohos.print';
77
78export default class HWPrintExtension extends PrintExtensionAbility {
79    onCancelPrintJob(jobInfo: print.PrintJob): void {
80        console.log('onCancelPrintJob, jobId is: ' + jobInfo.jobId);
81        // ...
82    }
83}
84```
85
86## onRequestPrinterCapability
87
88onRequestPrinterCapability(printerId: number): print.PrinterCapability
89
90请求打印机能力时调用。
91
92**系统能力:** SystemCapability.Print.PrintFramework
93
94**参数:**
95| **参数名** | **类型** | **必填** | **说明** |
96| -------- | -------- | -------- | -------- |
97| printerId | number | 是 | 表示打印机ID |
98
99**返回值:**
100| **类型** | **说明** |
101| -------- | -------- |
102| print.PrinterCapability | 表示打印能力 |
103
104**错误码:**
105
106以下错误码的详细介绍请参见[打印服务错误码](./errorcode-print.md)。
107
108| 错误码ID | 错误信息                                    |
109| -------- | ------------------------------------------- |
110| 202 | not system application |
111
112**示例:**
113
114```ts
115import PrintExtensionAbility from '@ohos.app.ability.PrintExtensionAbility';
116import print from '@ohos.print';
117
118export default class HWPrintExtension extends PrintExtensionAbility {
119    onRequestPrinterCapability(printerId: number): print.PrinterCapability {
120        console.log('onRequestPrinterCapability enter');
121        // ...
122        let tmp : print.PrinterCapability = {
123            colorMode : 1,
124            duplexMode : 1,
125            pageSize : []
126        };
127        return tmp;
128    }
129}
130```
131
132## onRequestPreview
133
134onRequestPreview(jobInfo: print.PrintJob): string
135
136请求预览时调用,并将结果返回到Print SA。
137
138**系统能力:** SystemCapability.Print.PrintFramework
139
140**参数:**
141| **参数名** | **类型** | **必填** | **说明** |
142| -------- | -------- | -------- | -------- |
143| jobInfo | print.PrintJob | 是 | 表示打印任务信息 |
144
145**返回值:**
146| **类型** | **说明** |
147| -------- | -------- |
148| string | 返回的预览结果 |
149
150**错误码:**
151
152以下错误码的详细介绍请参见[打印服务错误码](./errorcode-print.md)。
153
154| 错误码ID | 错误信息                                    |
155| -------- | ------------------------------------------- |
156| 202 | not system application |
157
158**示例:**
159
160```ts
161import PrintExtensionAbility from '@ohos.app.ability.PrintExtensionAbility';
162import print from '@ohos.print';
163
164export default class HWPrintExtension extends PrintExtensionAbility {
165    onRequestPreview(jobInfo: print.PrintJob): string {
166        console.log('onRequestPreview enter');
167        // ...
168        let tmp : string = '';
169        return tmp;
170    }
171}
172```
173