【HarmonyOS 5】鸿蒙应用实现发票扫描、文档扫描输出PDF图片或者表格的功能
一、前言
图(1-1)
HarmonyOS 系统提供的核心场景化视觉服务,旨在帮助开发者快速实现移动端文档数字化功能。
其核心能力包括:扫描合同、票据、会议记录并保存为 PDF 分享。拍摄课堂 PPT、书籍章节生成图片存档。快速识别表格数据,减少手动录入成本。
在HarmonyOS 5.0 及以上系统的手机 / 平板(不支持模拟器)。
二、鸿蒙中的文档扫描都具备什么功能?
图(1-2)
** 文档扫描控件(DocumentScanner)** 是 AI Vision Kit。文档扫描控件提供拍摄文档并转换为高清扫描件的服务。
- 使用手机拍摄文档,即可自动裁剪和优化,并支持jpeg图片、PDF格式保存和分享。如图(1-1)所示。
- 支持拍摄拍照或图片识别表格,生成表格文档。如图(1-2)所示。
三、鸿蒙中的文档扫描怎么用?
1. 导入依赖模块:
import {
DocType, DocumentScanner, DocumentScannerConfig, SaveOption, FilterId, ShootingMode, EditTab, DocumentScannerResultCallback } from "@kit.VisionKit";
2. 配置扫描config对象:
定义扫描参数(如拍摄模式、识别类型、滤镜等)。
名称 | 类型 | 可选 | 说明 |
---|---|---|---|
maxShotCount |
number |
是 | 最大拍摄张数,范围[1,50] ,默认1 。 |
supportType |
DocType[] |
否 | 支持的识别类型(文档/表格),默认[DocType.DOC] ,部分机型仅支持文档。 |
isGallerySupported |
boolean |
是 | 是否支持从图库选图,默认true 。 |
defaultFilterId |
FilterId |
是 | 初始滤镜(原图/黑白/增强),默认增强(STRENGTHEN )。 |
editTabs |
EditTab[] |
是 | Tab栏功能按钮(旋转/删除/重拍),默认全部显示。 |
defaultShootingMode |
ShootingMode |
是 | 拍摄模式(自动/手动),默认手动(MANUAL )。 |
isShareable |
boolean |
是 | 是否支持分享,默认true 。 |
saveOptions |
SaveOption[] |
是 | 保存格式(JPG/PDF/EXCEL),默认[JPG, EXCEL] 。 |
originalUris |
string[] |
是 | 初始图片URI列表(用于直接跳转编辑页),最大长度50,需符合尺寸规格。 |
private docScanConfig = new DocumentScannerConfig()
setDocScanConfig() {
this.docScanConfig.supportType = [DocType.DOC, DocType.SHEET]
this.docScanConfig.isGallerySupported = true
this.docScanConfig.editTabs = []
this.docScanConfig.maxShotCount = 3
this.docScanConfig.defaultFilterId = FilterId.ORIGINAL
this.docScanConfig.defaultShootingMode = ShootingMode.MANUAL
this.docScanConfig.isShareable = true
this.docScanConfig.originalUris = []
}
3. UI布局中添加DocumentScanner
将第二步配置创建好的scannerConfig对象进行赋值。
并且处理onResult回调,当扫描处理成功后会返回Uris。
参数名 | 类型 | 说明 |
---|---|---|
code |
number |
状态码:-1 =取消/200 =成功/1008601001 =URI无效(5.0.5+) |
saveType |
SaveOption |
保存格式(JPG/PDF/EXCEL) |
uris |
string[] |
生成的文件URI列表(扫描结果或表格文档) |
//文档扫描
DocumentScanner({
scannerConfig: this.docScanConfig,
onResult: (code: number, sav