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```