收录日期:2021/01/28 06:36:59 时间:2016/08/07 16:44:38 标签:VB基础类
程序运行到modiDocument.OCR miLANG_ENGLISH, False, False出现错误提示ocr running error,按确定后,程序自动关闭了,无法继续运行下去。请教高手,如何判断OCR出现错误,如何让程序不关闭,重新扫描,直到正确为止。

Option Explicit
'
'利用微软OCR控件, 只需要不到10行代码就能够实现自已的OCR文字识别软件.
'1. 添加控件,需要安装office2003, 没有安装office2003的可以从别人机子上拷贝相关文件,注册regsvr32.exe mdivwctl.dll,
'控件一般在这个目录下:C:\Program Files\Common Files\Microsoft Shared\MODI.0, 只需要相关的几个文件就可以了, 此文件夹全部文件大概在21M左右.
'2.工程->部件->添加这个控件:Microsoft Office Document Imaging 11.0 Type Library


'OCR的主要功能
Private Function OCRImageFile(ByVal strName As String) As Boolean
    Dim modiDocument As New MODI.Document
    Dim modiImages As New MODI.Images
    Dim modiImage As New MODI.Image
    Dim modiLayout As New MODI.Layout
    Dim ImageCount As Integer
    
    Dim i As Integer
    modiDocument.OCR miLANG_CHINESE_SIMPLIFIED, False, False
   
    Set modiImage = modiDocument.Images
    
    
    For i = 0 To ImageCount
        Set modiImage = modiImages.Item(i)
        Set modiLayout = modiImage.Layout
        Text1.Text = modiLayout.Text
    Next i
    
    modiDocument.Close False: Set modiDocument = Nothing
    
    If ImageCount > 0 Then
        OCRImageFile = True
    Else
        OCRImageFile = False
    End If
End Function

Private Sub Command1_Click()
    Dim bolP As Boolean
    bolP = OCRImageFile(App.Path & "\1.bmp")
End Sub
这个可以成功执行

Option Explicit
'
'利用微软OCR控件, 只需要不到10行代码就能够实现自已的OCR文字识别软件.
'1. 添加控件,需要安装office2003, 没有安装office2003的可以从别人机子上拷贝相关文件,注册regsvr32.exe mdivwctl.dll,
'控件一般在这个目录下:C:\Program Files\Common Files\Microsoft Shared\MODI.0, 只需要相关的几个文件就可以了, 此文件夹全部文件大概在21M左右.
'2.工程->部件->添加这个控件:Microsoft Office Document Imaging 11.0 Type Library


'OCR的主要功能
Private Function OCRImageFile(ByVal strName As String) As Boolean
    Dim miDoc As Object
    
    
     '初始化并加载文档
    Set miDoc = CreateObject("MODI.Document")            '创建对象
    
    miDoc.Create App.Path & "\1.bmp"                       '加载图片文件
    
    Screen.MousePointer = vbHourglass                    '设置光标忙
    
    '识别
    Err.Clear
    miDoc.Images(0).OCR 2052, True, True
    Text1.Text = miDoc.Images(0).Layout.Text
    
    OCRImageFile = True
   
End Function

Private Sub Command1_Click()
    Dim bolP As Boolean
    bolP = OCRImageFile(App.Path & "\1.bmp")
End Sub

可能是你的office没装好
在大多情况下是可以识别的,图片太小,或者无法识别就会出现这个错误,我是想如何在错误发生时拦截到它,然后作出处理,不然的话,程序会运行会运行不下去,自动退出
你添加一个错误处理语句不就OK了?

关于OCX 中,界面同步的问题 jquery 及ajax 验证都通过了 ,最后 这个方法的返回值确实false 急求 如何更新数据库的数据 谢谢大侠们 求助,怎么向一个模板方法传一个自定义类型 求个googlemap api的查询精度问题 *********************局域网限速下载速度------120分相送 一条批量更新语句 菜鸟做android坦克大战出错了。求大神指点 CBCGPTabWnd添加EnableActiveTabCloseButton功能后关闭异常问题,回帖有分! 求一JQuery异步加载图片的demo 求助管理员 麻痹的,哥要讨债去,艹 关闭winform如何实现关闭后实现程序的自动开启 C#自定义水晶报表打印纸张大小问题 把蛋都闲碎了 12306订票软件! Android 4.1 sdk WebView question 用vector保存结构体指针,退出时遍历删除这些指针,却还有内存泄漏。 代码讲解-- socket接收图像数据代码的理解问题,求多多指点 vs下报表工具选择? 在flex里嵌入html,javascript回调as如何实现? IE解析JSON报错,缺少 \']\',chrome 浏览器正常 [100分]PB10字符串转换为UTF8编码 list 控件问题 深圳,2009年10月至今,小盘点!! 求一些编写桌面程序时,常用的图标资源,谢谢! asp.net mvc 搜索的SEO匹配问题 今天周一 ,有没有感觉上来快一周的班呢 如何动态在窗体的左下方创建一个控件按钮,菜鸟求助~