本文主要是介绍VBA调用Office的MODI组件识别图片中的文字,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Microsoft Office Document Imaging (MODI)是Office 2003-2007版本中的一个利用OCR(Optical Character Recognition 光学字符识别)技术识别图像中的文字并转换为文本的一个组件。在VBA中使用该组件需要在“工具-引用”中将其设置为“可使用的引用”,如下图:
VBA识别代码如下:
Private Sub Select_JPG_File()SelectedFilePath="D:\1.jpg"OCRImageFile (SelectedFilePath)MsgBox "识别成功!", vbOKOnly, "提示"
End Sub' 利用微软MODI控件,实现OCR文字识别。
' 1. 需要安装微软MODI控件,可以通过Office原装安装光盘添加工具里面OCR组件。
' 2. 点击“开发工具->Visual Basic->工具->引用->Microsoft Office Document Imaging 12.0 Type Library”Function OCRImageFile(ByVal ImageFile As String)Dim objDocument As New MODI.DocumentDim objImage As New MODI.ImageobjDocument.Create ImageFileSet objImage = objDocument.Images.Item(0)On Error Resume NextobjImage.OCR miLANG_CHINESE_SIMPLIFIED, False, False ' 以中文模式识别,并禁止自动检测If Err.Number = 0 Then'MsgBox objImage.Layout.Text ' 显示识别的文本Sheets("Sheet1").Cells(1, 1) = objImage.Layout.text ' 将识别结果写入单元格ElseMsgBox Err.DescriptionEnd IfobjDocument.Close FalseSet objDocument = Nothing
End Function
虽然有高手提取了该组件的独立安装包,并设法部署在Office2010版本中使用,但经过笔者反复试验,其成功率非常低,仅在Office2010精简版中部署成功过,在Office2010正版安装环境中从未成功过,总是会造成Office应用软件直接崩溃,并提示错误信息如下:
问题签名:
问题事件名称: APPCRASH
应用程序名: EXCEL.EXE
应用程序版本: 14.0.4756.1000
应用程序时间戳: 4b9c08e8
故障模块名称: KERNELBASE.dll
故障模块版本: 6.1.7601.24545
故障模块时间戳: 5e0eb7d0
异常代码: c06d007f
异常偏移: 0000845d
OS 版本: 6.1.7601.2.1.0.256.48
区域设置 ID: 2052
有关该问题的其他信息:
LCID: 2052
skulcid: 2052
由于MODI组件很难在Office2010以上版本中成功部署,且其对图片文字的识别能力较差,准确率又不高,建议改用OneNote组件来代替它。OneNote是Office中的一个电子笔记本软件,它支持使用触笔、声音或视频创建笔记,且能够直接识别和复制图片中的文字,并粘贴到其他文档中进行编辑,非常方便,且识别率高,如下图:
这篇关于VBA调用Office的MODI组件识别图片中的文字的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!