1# @ohos.app.ability.PrintExtensionAbility (Print Extension Ability) (System API) 2 3<!--Kit: Basic Services Kit--> 4<!--Subsystem: Print--> 5<!--Owner: @guoshengbang--> 6<!--Designer: @gcw_4D6e0BBd--> 7<!--Tester: @guoshengbang--> 8<!--Adviser: @RayShih--> 9 10The **PrintExtensionAbility** module provides operation APIs of the print extension ability. 11 12> **NOTE** 13> The initial APIs of this module are supported since API version 10. Newly added APIs will be marked with a superscript to indicate their earliest API version. 14> This topic describes only system APIs provided by the module. For details about its public APIs, see [@ohos.app.ability.PrintExtensionAbility (Print Extension Ability)](./js-apis-app-ability-PrintExtensionAbility.md). 15> The APIs of this module can be used only in the stage model. 16 17## Modules to Import 18 19```ts 20import { PrintExtensionAbility } from '@kit.BasicServicesKit'; 21``` 22 23## PrintExtensionAbility.onStartPrintJob 24 25onStartPrintJob(jobInfo: print.PrintJob): void 26 27Called when the specified print job starts. 28 29**System capability**: SystemCapability.Print.PrintFramework 30 31**Parameters** 32| **Name**| **Type**| **Mandatory**| **Description**| 33| -------- | -------- | -------- | -------- | 34| jobInfo | [print.PrintJob](./js-apis-print-sys.md#printjob) | Yes| Information about the print job.| 35 36**Error codes** 37 38For details about the error codes, see [Error Codes of the Print Service](./errorcode-print.md). 39 40| ID| Error Message | 41| -------- | ------------------------------------------- | 42| 202 | not system application | 43 44**Example** 45 46```ts 47import { PrintExtensionAbility } from '@kit.BasicServicesKit'; 48import { print } from '@kit.BasicServicesKit'; 49 50export default class HWPrintExtension extends PrintExtensionAbility { 51 onStartPrintJob(jobInfo: print.PrintJob): void { 52 console.log('onStartPrintJob, jobId is: ' + jobInfo.jobId); 53 // ... 54 } 55} 56``` 57 58## PrintExtensionAbility.onCancelPrintJob 59 60onCancelPrintJob(jobInfo: print.PrintJob): void 61 62Called when the specified print job is canceled. 63 64**System capability**: SystemCapability.Print.PrintFramework 65 66**Parameters** 67| **Name**| **Type**| **Mandatory**| **Description**| 68| -------- | -------- | -------- | -------- | 69| jobInfo | [print.PrintJob](./js-apis-print-sys.md#printjob) | Yes| Information about the print job.| 70 71**Error codes** 72 73For details about the error codes, see [Error Codes of the Print Service](./errorcode-print.md). 74 75| ID| Error Message | 76| -------- | ------------------------------------------- | 77| 202 | not system application | 78 79**Example** 80 81```ts 82import { PrintExtensionAbility } from '@kit.BasicServicesKit'; 83import { print } from '@kit.BasicServicesKit'; 84 85export default class HWPrintExtension extends PrintExtensionAbility { 86 onCancelPrintJob(jobInfo: print.PrintJob): void { 87 console.log('onCancelPrintJob, jobId is: ' + jobInfo.jobId); 88 // ... 89 } 90} 91``` 92 93## PrintExtensionAbility.onRequestPrinterCapability 94 95onRequestPrinterCapability(printerId: number): print.PrinterCapability 96 97Called when a request is sent to check the capability of the specified printer. 98 99**System capability**: SystemCapability.Print.PrintFramework 100 101**Parameters** 102| **Name**| **Type**| **Mandatory**| **Description**| 103| -------- | -------- | -------- | -------- | 104| printerId | number | Yes| Printer ID.| 105 106**Return value** 107| **Type**| **Description**| 108| -------- | -------- | 109| print.PrinterCapability | Capability of the printer.| 110 111**Error codes** 112 113For details about the error codes, see [Error Codes of the Print Service](./errorcode-print.md). 114 115| ID| Error Message | 116| -------- | ------------------------------------------- | 117| 202 | not system application | 118 119**Example** 120 121```ts 122import { PrintExtensionAbility } from '@kit.BasicServicesKit'; 123import { print } from '@kit.BasicServicesKit'; 124 125export default class HWPrintExtension extends PrintExtensionAbility { 126 onRequestPrinterCapability(printerId: number): print.PrinterCapability { 127 console.log('onRequestPrinterCapability enter'); 128 // ... 129 let tmp : print.PrinterCapability = { 130 colorMode : 1, 131 duplexMode : 1, 132 pageSize : [] 133 }; 134 return tmp; 135 } 136} 137``` 138 139## PrintExtensionAbility.onRequestPreview 140 141onRequestPreview(jobInfo: print.PrintJob): string 142 143Called when a print preview request is sent. The result is returned to the print SA. 144 145**System capability**: SystemCapability.Print.PrintFramework 146 147**Parameters** 148| **Name**| **Type**| **Mandatory**| **Description**| 149| -------- | -------- | -------- | -------- | 150| jobInfo | [print.PrintJob](./js-apis-print-sys.md#printjob) | Yes| Information about the print job.| 151 152**Return value** 153| **Type**| **Description**| 154| -------- | -------- | 155| string | Preview result.| 156 157**Error codes** 158 159For details about the error codes, see [Error Codes of the Print Service](./errorcode-print.md). 160 161| ID| Error Message | 162| -------- | ------------------------------------------- | 163| 202 | not system application | 164 165**Example** 166 167```ts 168import { PrintExtensionAbility } from '@kit.BasicServicesKit'; 169import { print } from '@kit.BasicServicesKit'; 170 171export default class HWPrintExtension extends PrintExtensionAbility { 172 onRequestPreview(jobInfo: print.PrintJob): string { 173 console.log('onRequestPreview enter'); 174 // ... 175 let tmp : string = ''; 176 return tmp; 177 } 178} 179``` 180