文档扫描控件提供拍摄文档并转换为高清扫描件的服务。仅需使用手机拍摄文档,即可自动裁剪和优化,并支持jpeg图片、PDF格式保存和分享;同时支持拍摄拍照或图片识别表格,生成表格文档。
起始版本: 5.0.0(12)
- import { DocType, DocumentScanner, DocumentScannerConfig, SaveOption, FilterId, ShootingMode, EditTab, DocumentScannerResultCallback, DocumentScannerController } from '@kit.VisionKit';
文档扫描控件,集成此控件可以实现文档扫描。
元服务API: 从版本5.0.0(12)开始,该接口支持在元服务中使用。
装饰器类型: @Component
系统能力: SystemCapability.AI.Component.DocScan
模型约束: 此接口仅可在Stage模型下使用。
起始版本: 5.0.0(12)
参数:
| 名称 | 类型 | 必填 | 装饰器类型 | 说明 |
|---|---|---|---|---|
| scannerConfig | DocumentScannerConfig | 是 | - | 文档扫描能力配置。 |
| onResult | DocumentScannerResultCallback | 是 | - | 文档扫描结果回调。 |
build(): void
用于创建DocumentScanner对象的构造函数,开发者无需调用此方法。
元服务API: 从版本5.0.0(12)开始,该接口支持在元服务中使用。
系统能力: SystemCapability.AI.Component.DocScan
模型约束: 此接口仅可在Stage模型下使用。
起始版本: 5.0.0(12)
文档扫描配置项。
元服务API: 从版本5.0.0(12)开始,该接口支持在元服务中使用。
系统能力: SystemCapability.AI.Component.DocScan
模型约束: 此接口仅可在Stage模型下使用。
起始版本: 5.0.0(12)
| 名称 | 类型 | 只读 | 可选 | 说明 |
|---|---|---|---|---|
| maxShotCount | number | 否 | 是 | 文档扫描最大支持张数。默认值1,最大值50。 取值范围:[1,50]的整数。 |
| supportType | DocType[] | 否 | 否 | 支持识别的文件类型。默认值:[DocType.DOC]。 设备行为差异: 部分机型不支持配置[DocType.SHEET],可使用isSheetDetectionSupported查询当前设备是否支持表格提取功能。若设备配置不支持的属性,此属性将采用默认值。 |
| isGallerySupported | boolean | 否 | 是 | 是否支持从图库进行选图。true:支持。false:不支持。默认值:true。 |
| defaultFilterId | FilterId | 否 | 是 | 初始滤镜效果。默认增强。 |
| editTabs | EditTab[] | 否 | 是 | Tab栏中展示的功能按钮。默认全部显示。 |
| defaultShootingMode | ShootingMode | 否 | 是 | 初始拍摄模式。默认手动拍摄。 |
| isShareable | boolean | 否 | 是 | 是否支持分享功能。true:支持。false:不支持。默认支持。 |
| saveOptions | SaveOption[] | 否 | 是 | 保存选项。supportType为[DOC]时,默认值为[SaveOption.JPG],supportType为[SHEET]时,默认值为[SaveOption.EXCEL],supportType为[DOC,SHEET]时,默认值为[SaveOption.JPG, SaveOption.EXCEL],DOC和SHEET类型的保存选项互相独立,互不影响。 |
| originalUris | string[] | 否 | 是 | 初始提供的图片URI列表,若此值不为空,则直接使用这里的值跳转编辑页面。默认值为空,数组最大长度为50。不符合规格的图片将被剔除,图片规格如下(单位px): 1、单边长度最小224,最大8000。 2、宽高之积小于等于 6000*8000。 3、高宽比或宽高比小于等于3。 说明: 此参数实际功能于5.0.5(17)版本正式上线,此前版本为预留参数。 |
支持识别的文件类型枚举。
元服务API: 从版本5.0.0(12)开始,该接口支持在元服务中使用。
系统能力: SystemCapability.AI.Component.DocScan
模型约束: 此接口仅可在Stage模型下使用。
起始版本: 5.0.0(12)
| 名称 | 值 | 说明 |
|---|---|---|
| DOC | 0 | 文档类型。 |
| SHEET | 1 | 表格类型。 |
给图片添加的滤镜枚举。
元服务API: 从版本5.0.0(12)开始,该接口支持在元服务中使用。
系统能力: SystemCapability.AI.Component.DocScan
模型约束: 此接口仅可在Stage模型下使用。
起始版本: 5.0.0(12)
| 名称 | 值 | 说明 |
|---|---|---|
| ORIGINAL | 0 | 原图滤镜。 |
| MONOCHROME | 1 | 黑白滤镜。 |
| STRENGTHEN | 2 | 增强滤镜。 |
拍照模式枚举。
元服务API: 从版本5.0.0(12)开始,该接口支持在元服务中使用。
系统能力: SystemCapability.AI.Component.DocScan
模型约束: 此接口仅可在Stage模型下使用。
起始版本: 5.0.0(12)
| 名称 | 值 | 说明 |
|---|---|---|
| AUTO | 0 | 自动拍照模式。 |
| MANUAL | 1 | 手动拍照模式。 |
Tab栏按钮枚举。
元服务API: 从版本5.0.0(12)开始,该接口支持在元服务中使用。
系统能力: SystemCapability.AI.Component.DocScan
模型约束: 此接口仅可在Stage模型下使用。
起始版本: 5.0.0(12)
| 名称 | 值 | 说明 |
|---|---|---|
| ROTATE_TAB | 0 | 旋转按钮。 |
| DELETE_TAB | 1 | 删除按钮。 |
| RESHOOT_TAB | 2 | 重拍按钮。 |
保存选项枚举。
元服务API: 从版本5.0.0(12)开始,该接口支持在元服务中使用。
系统能力: SystemCapability.AI.Component.DocScan
模型约束: 此接口仅可在Stage模型下使用。
起始版本: 5.0.0(12)
| 名称 | 值 | 说明 |
|---|---|---|
| JPG | 0 | JPEG格式。(仅用于文档类型的保存格式) |
| 1 | PDF格式。(仅用于文档类型的保存格式) | |
| EXCEL | 2 | EXCEL格式。(仅用于表格类型的保存格式) |
type DocumentScannerResultCallback = (code: number, saveType: SaveOption, uris: string[]) => void
文档扫描结果回调。
元服务API: 从版本5.0.0(12)开始,该接口支持在元服务中使用。
系统能力: SystemCapability.AI.Component.DocScan
模型约束: 此接口仅可在Stage模型下使用。
起始版本: 5.0.0(12)
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| code | number | 是 | 返回的结果码: -1:无结果返回 200:识别成功 1008601001:uris无效 说明: 从5.0.5(17)开始支持状态码1008601001 |
| saveType | SaveOption | 是 | 结果保存格式。 |
| uris | string[] | 是 | 文档uri列表。 |
文档扫描控制器,用于控制交互。
元服务API: 从版本26.0.0开始,该接口支持在元服务中使用。
系统能力: SystemCapability.AI.Component.DocScan
模型约束: 此接口仅可在Stage模型下使用。
起始版本: 26.0.0
isSheetDetectionSupported(): boolean
查询当前设备是否支持表格提取功能。
元服务API: 从版本26.0.0开始,该接口支持在元服务中使用。
系统能力: SystemCapability.AI.Component.DocScan
模型约束: 此接口仅可在Stage模型下使用。
起始版本: 26.0.0
返回值:
| 类型 | 说明 |
|---|---|
| boolean | 如果当前设备支持表格提取功能,则返回true;否则返回false。 |
示例:
- import { DocumentScannerController } from '@kit.VisionKit';
-
- let documentScannerController: DocumentScannerController = new DocumentScannerController();
- let isSheetSupported = documentScannerController.isSheetDetectionSupported();
- console.info(`isSheetSupported: ${isSheetSupported}`);