# @ohos.print (打印)
该模块为基本打印的操作API,提供调用基础打印功能的接口。
> **说明:**
> 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块
```ts
import print from '@ohos.print';
```
## PrintTask
打印任务完成后的事件监听回调接口类
### on
on(type: 'block' | 'succeed' | 'fail' | 'cancel', callback: Callback<void>): void
注册打印完成后的监听,使用callback回调。
**需要权限:** ohos.permission.PRINT
**系统能力:** SystemCapability.Print.PrintFramework
**参数:**
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 注册监听,
可选监听字段:block/succeed/fail/cancel
依次表示打印:阻塞/成功/失败/取消 |
| callback| Callback<void> | 是 | 打印完成后处于相应状态的回调 |
**返回值:**
| **类型** | **说明** |
| -------- | -------- |
| Promise<PrintTask> | 打印完成结果 |
**示例:**
```ts
import print from '@ohos.print';
import { BusinessError } from '@ohos.base';
let file = ['file://data/print/a.png', 'file://data/print/b.png'];
print.print(file).then((printTask: print.PrintTask) => {
printTask.on('succeed', () => {
console.log('print state is succeed');
})
printTask.on('block', () => {
console.log('print state is block');
})
printTask.on('succeed', () => {
console.log('print state is succeed');
})
printTask.on('fail', () => {
console.log('print state is fail');
})
printTask.on('cancel', () => {
console.log('print state is cancel');
})
// ...
}).catch((error: BusinessError) => {
console.log('print err ' + JSON.stringify(error));
})
```
### off
off(type: 'block' | 'succeed' | 'fail' | 'cancel', callback?: Callback<void>): void
取消打印完成后的监听,使用callback回调。
**需要权限:** ohos.permission.PRINT
**系统能力:** SystemCapability.Print.PrintFramework
**参数:**
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 取消监听,
可选监听字段:block/succeed/fail/cancel
依次表示打印:阻塞/成功/失败/取消 |
| callback| Callback<void> | 否 | 取消相应状态监听成功后的回调 |
**返回值:**
| **类型** | **说明** |
| -------- | -------- |
| Promise<PrintTask> | 打印完成结果 |
**示例:**
```ts
import print from '@ohos.print';
import { BusinessError } from '@ohos.base';
let file = ['file://data/print/a.png', 'file://data/print/b.png'];
print.print(file).then((printTask: print.PrintTask) => {
printTask.off('succeed', () => {
console.log('unregister state succeed');
})
printTask.off('block', () => {
console.log('unregister state block');
})
printTask.off('succeed', () => {
console.log('unregister state succeed');
})
printTask.off('fail', () => {
console.log('unregister state fail');
})
printTask.off('cancel', () => {
console.log('unregister state cancel');
})
// ...
}).catch((error: BusinessError) => {
console.log('print err ' + JSON.stringify(error));
})
```
## print
print(files: Array<string>, callback: AsyncCallback<PrintTask>): void
打印接口,传入文件进行打印,使用callbak异步回调。
**需要权限:** ohos.permission.PRINT
**系统能力:** SystemCapability.Print.PrintFramework
**参数:**
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| file | Array<string> | 是 | 待打印文件列表,仅支持图片和pdf |
| callback| AsyncCallback<PrintTask> | 是 | 异步获取打印完成之后的回调 |
**示例:**
```ts
import print from '@ohos.print';
import { BusinessError } from '@ohos.base';
//传入文件的uri
let file = ['file://data/print/a.png', 'file://data/print/b.png'];
// 或者传入fd
// let file = ['fd://1', 'fd://2'];
print.print(file, (err: BusinessError, printTask: print.PrintTask) => {
if (err) {
console.log('print err ' + JSON.stringify(err));
} else {
printTask.on('succeed', () => {
console.log('print state is succeed');
})
// ...
}
})
```
## print
print(files: Array<string>): Promise<PrintTask>
打印接口,传入文件进行打印,使用Promise异步回调。
**需要权限:** ohos.permission.PRINT
**系统能力:** SystemCapability.Print.PrintFramework
**参数:**
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| file | Array<string> | 是 | 待打印文件列表,仅支持图片和pdf |
**返回值:**
| **类型** | **说明** |
| -------- | -------- |
| Promise<PrintTask> | 打印完成结果 |
**示例:**
```ts
import print from '@ohos.print';
import { BusinessError } from '@ohos.base';
//传入文件的uri
let file = ['file://data/print/a.png', 'file://data/print/b.png'];
// 或者传入fd
// let file = ['fd://1', 'fd://2'];
print.print(file).then((printTask: print.PrintTask) => {
printTask.on('succeed', () => {
console.log('print state is succeed');
})
// ...
}).catch((error: BusinessError) => {
console.log('print err ' + JSON.stringify(error));
})
```