1# @ohos.app.ability.PrintExtensionAbility (打印扩展能力)(系统接口)
2
3该模块为打印扩展能力的操作API,提供调用打印扩展能力的接口。
4
5> **说明:**  
6> 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。  
7> 本模块接口为系统接口。  
8> 本模块接口仅可在Stage模型下使用。
9
10## 导入模块
11
12```ts
13import PrintExtensionAbility from '@ohos.app.ability.PrintExtensionAbility';
14```
15
16## onCreate
17
18onCreate(want: Want): void
19
20初始化扩展能力,会在系统首次连接打印扩展时调用。
21
22**系统能力:** SystemCapability.Print.PrintFramework
23
24**参数:**
25| **参数名** | **类型** | **必填** | **说明** |
26| -------- | -------- | -------- | -------- |
27| want | Want | 是 | 表示调用打印页面需要参数 |
28
29**错误码:**
30
31以下错误码的详细介绍请参见[打印服务错误码](./errorcode-print.md)。
32
33| 错误码ID | 错误信息                                    |
34| -------- | ------------------------------------------- |
35| 202 | Permission verification failed. A non-system application calls a system API. |
36
37**示例:**
38
39```ts
40import PrintExtensionAbility from '@ohos.app.ability.PrintExtensionAbility';
41import Want from '@ohos.app.ability.Want';
42
43export default class HWPrintExtension extends PrintExtensionAbility {
44    onCreate(want: Want): void {
45        console.log('onCreate');
46        // ...
47    }
48}
49```
50
51## onStartDiscoverPrinter
52
53onStartDiscoverPrinter(): void
54
55开始发现与设备连接的打印机时调用。
56
57**系统能力:** SystemCapability.Print.PrintFramework
58
59**错误码:**
60
61以下错误码的详细介绍请参见[打印服务错误码](./errorcode-print.md)。
62
63| 错误码ID | 错误信息                                    |
64| -------- | ------------------------------------------- |
65| 202 | Permission verification failed. A non-system application calls a system API. |
66
67**示例:**
68
69```ts
70import PrintExtensionAbility from '@ohos.app.ability.PrintExtensionAbility';
71
72export default class HWPrintExtension extends PrintExtensionAbility {
73    onStartDiscoverPrinter(): void {
74        console.log('onStartDiscoverPrinter enter');
75        // ...
76    }
77}
78```
79
80## onStopDiscoverPrinter
81
82onStopDiscoverPrinter(): void
83
84停止发现打印机时调用。
85
86**系统能力:** SystemCapability.Print.PrintFramework
87
88**错误码:**
89
90以下错误码的详细介绍请参见[打印服务错误码](./errorcode-print.md)。
91
92| 错误码ID | 错误信息                                    |
93| -------- | ------------------------------------------- |
94| 202 | Permission verification failed. A non-system application calls a system API. |
95
96**示例:**
97
98```ts
99import PrintExtensionAbility from '@ohos.app.ability.PrintExtensionAbility';
100
101export default class HWPrintExtension extends PrintExtensionAbility {
102    onStopDiscoverPrinter(): void {
103        console.log('onStopDiscoverPrinter enter');
104        // ...
105    }
106}
107```
108
109## onConnectPrinter
110
111onConnectPrinter(printerId: number): void
112
113连接到特定打印机时调用。
114
115**系统能力:** SystemCapability.Print.PrintFramework
116
117**参数:**
118| **参数名** | **类型** | **必填** | **说明** |
119| -------- | -------- | -------- | -------- |
120| printerId | number | 是 | 表示打印机ID |
121
122**错误码:**
123
124以下错误码的详细介绍请参见[打印服务错误码](./errorcode-print.md)。
125
126| 错误码ID | 错误信息                                    |
127| -------- | ------------------------------------------- |
128| 202 | Permission verification failed. A non-system application calls a system API. |
129
130**示例:**
131
132```ts
133import PrintExtensionAbility from '@ohos.app.ability.PrintExtensionAbility';
134
135export default class HWPrintExtension extends PrintExtensionAbility {
136    onConnectPrinter(printerId: number): void {
137        console.log('onConnectPrinter enter');
138        // ...
139    }
140}
141```
142
143## onDisconnectPrinter
144
145onDisconnectPrinter(printerId: number): void
146
147断开与特定打印机的连接时调用。
148
149**系统能力:** SystemCapability.Print.PrintFramework
150
151**参数:**
152| **参数名** | **类型** | **必填** | **说明** |
153| -------- | -------- | -------- | -------- |
154| printerId | number | 是 | 表示打印机ID |
155
156**错误码:**
157
158以下错误码的详细介绍请参见[打印服务错误码](./errorcode-print.md)。
159
160| 错误码ID | 错误信息                                    |
161| -------- | ------------------------------------------- |
162| 202 | Permission verification failed. A non-system application calls a system API. |
163
164**示例:**
165
166```ts
167import PrintExtensionAbility from '@ohos.app.ability.PrintExtensionAbility';
168
169export default class HWPrintExtension extends PrintExtensionAbility {
170    onDisconnectPrinter(printerId: number): void {
171        console.log('onDisconnectPrinter enter');
172        // ...
173    }
174}
175```
176
177## onStartPrintJob
178
179onStartPrintJob(jobInfo: print.PrintJob): void
180
181开始打印任务时调用。
182
183**系统能力:** SystemCapability.Print.PrintFramework
184
185**参数:**
186| **参数名** | **类型** | **必填** | **说明** |
187| -------- | -------- | -------- | -------- |
188| jobInfo | print.PrintJob | 是 | 表示打印任务的信息 |
189
190**错误码:**
191
192以下错误码的详细介绍请参见[打印服务错误码](./errorcode-print.md)。
193
194| 错误码ID | 错误信息                                    |
195| -------- | ------------------------------------------- |
196| 202 | Permission verification failed. A non-system application calls a system API. |
197
198**示例:**
199
200```ts
201import PrintExtensionAbility from '@ohos.app.ability.PrintExtensionAbility';
202import print from '@ohos.print';
203
204export default class HWPrintExtension extends PrintExtensionAbility {
205    onStartPrintJob(jobInfo: print.PrintJob): void {
206        console.log('onStartPrintJob, jobId is: ' + jobInfo.jobId);
207        // ...
208    }
209}
210```
211
212## onCancelPrintJob
213
214onCancelPrintJob(jobInfo: print.PrintJob): void
215
216移除已开始的打印任务时调用。
217
218**系统能力:** SystemCapability.Print.PrintFramework
219
220**参数:**
221| **参数名** | **类型** | **必填** | **说明** |
222| -------- | -------- | -------- | -------- |
223| jobInfo | print.PrintJob | 是 | 表示打印任务的信息 |
224
225**错误码:**
226
227以下错误码的详细介绍请参见[打印服务错误码](./errorcode-print.md)。
228
229| 错误码ID | 错误信息                                    |
230| -------- | ------------------------------------------- |
231| 202 | Permission verification failed. A non-system application calls a system API. |
232
233**示例:**
234
235```ts
236import PrintExtensionAbility from '@ohos.app.ability.PrintExtensionAbility';
237import print from '@ohos.print';
238
239export default class HWPrintExtension extends PrintExtensionAbility {
240    onCancelPrintJob(jobInfo: print.PrintJob): void {
241        console.log('onCancelPrintJob, jobId is: ' + jobInfo.jobId);
242        // ...
243    }
244}
245```
246
247## onRequestPrinterCapability
248
249onRequestPrinterCapability(printerId: number): print.PrinterCapability
250
251请求打印机能力时调用。
252
253**系统能力:** SystemCapability.Print.PrintFramework
254
255**参数:**
256| **参数名** | **类型** | **必填** | **说明** |
257| -------- | -------- | -------- | -------- |
258| printerId | number | 是 | 表示打印机ID |
259
260**返回值:**
261| **类型** | **说明** |
262| -------- | -------- |
263| print.PrinterCapability | 表示打印能力 |
264
265**错误码:**
266
267以下错误码的详细介绍请参见[打印服务错误码](./errorcode-print.md)。
268
269| 错误码ID | 错误信息                                    |
270| -------- | ------------------------------------------- |
271| 202 | Permission verification failed. A non-system application calls a system API. |
272
273**示例:**
274
275```ts
276import PrintExtensionAbility from '@ohos.app.ability.PrintExtensionAbility';
277import print from '@ohos.print';
278
279export default class HWPrintExtension extends PrintExtensionAbility {
280    onRequestPrinterCapability(printerId: number): print.PrinterCapability {
281        console.log('onRequestPrinterCapability enter');
282        // ...
283        let tmp : print.PrinterCapability = {
284            colorMode : 1,
285            duplexMode : 1,
286            pageSize : []
287        };
288        return tmp;
289    }
290}
291```
292
293## onRequestPreview
294
295onRequestPreview(jobInfo: print.PrintJob): string
296
297请求预览时调用,并将结果返回到Print SA。
298
299**系统能力:** SystemCapability.Print.PrintFramework
300
301**参数:**
302| **参数名** | **类型** | **必填** | **说明** |
303| -------- | -------- | -------- | -------- |
304| jobInfo | print.PrintJob | 是 | 表示打印任务信息 |
305
306**返回值:**
307| **类型** | **说明** |
308| -------- | -------- |
309| string | 返回的预览结果 |
310
311**错误码:**
312
313以下错误码的详细介绍请参见[打印服务错误码](./errorcode-print.md)。
314
315| 错误码ID | 错误信息                                    |
316| -------- | ------------------------------------------- |
317| 202 | Permission verification failed. A non-system application calls a system API. |
318
319**示例:**
320
321```ts
322import PrintExtensionAbility from '@ohos.app.ability.PrintExtensionAbility';
323import print from '@ohos.print';
324
325export default class HWPrintExtension extends PrintExtensionAbility {
326    onRequestPreview(jobInfo: print.PrintJob): string {
327        console.log('onRequestPreview enter');
328        // ...
329        let tmp : string = '';
330        return tmp;
331    }
332}
333```
334
335## onDestroy
336
337onDestroy(): void
338
339结束打印扩展时调用。
340
341**系统能力:** SystemCapability.Print.PrintFramework
342
343**错误码:**
344
345以下错误码的详细介绍请参见[打印服务错误码](./errorcode-print.md)。
346
347| 错误码ID | 错误信息                                    |
348| -------- | ------------------------------------------- |
349| 202 | Permission verification failed. A non-system application calls a system API. |
350
351**示例:**
352
353```ts
354import PrintExtensionAbility from '@ohos.app.ability.PrintExtensionAbility';
355
356export default class HWPrintExtension extends PrintExtensionAbility {
357    onDestroy(): void {
358        console.log('onDestroy');
359    }
360}
361```