關於OFFICE2003文字識別控件

關於OFFICE2003文字識別控件  

原理: 利用微軟OCR控件, 只須要不到10行代碼就可以實現自已的OCR文字識別軟件.spa

1. 添加控件,須要安裝office2003, 沒有安裝office2003的能夠從別人機子上拷貝相關文件,註冊regsvr32.exe mdivwctl.dll,orm

在運行中輸入regsvr32.exe "C:\Program Files\Common Files\Microsoft Shared\MODI\11.0\mdivwctl.dll"server

控件通常在這個目錄下:C:\Program Files\Common Files\Microsoft Shared\MODI\11.0, 只須要相關的幾個文件就能夠了, 此文件夾所有文件大概在21M左右.對象

工程->部件->添加這個控件:Microsoft Office Document Imaging 11.0 Type Libraryblog

2.在按鈕的Click事件裏:接口

    Dim strLayoutInfo As String, strLPN As String事件

   

     '初始化並加載文檔圖片

    Set miDoc = CreateObject("MODI.Document")            '建立對象開發

    miDoc.Create "D:\未命名.jpg"                         '加載圖片文件文檔

   

    Screen.MousePointer = vbHourglass                    '設置光標忙

    '識別

    miDoc.Images(0).OCR miLANG_CHINESE_SIMPLIFIED, True, True '有用的就此一句,識別爲中文簡體

   

    Set modiLayout = miDoc.Images(0).Layout              '讀出數據

    strLayoutInfo = _

        "Language: " & modiLayout.Language & vbCrLf & _

        "Number of characters: " & modiLayout.NumChars & vbCrLf & _

        "Number of fonts: " & modiLayout.NumFonts & vbCrLf & _

        "Number of words: " & modiLayout.NumWords & vbCrLf & _

        "Beginning of text: " & Left(modiLayout.Text, 50) & vbCrLf & _

        "First word of text: " & modiLayout.Words(0).Text

    MsgBox strLayoutInfo, vbInformation + vbOKOnly, "Layout Information"

    Set modiLayout = Nothing

    Set miDoc = Nothing

    Screen.MousePointer = vbDefault

3. OK了, 是否是很簡單!

--------------------------

以上代碼用精簡版vb6編譯經過,可是是在徹底安裝office2003的前提下,單獨用個人包註冊,執行的時候,miDoc.Create "D:\未命名.jpg"                         '加載圖片文件 這步有問題,

在易語言下不能註冊該支持庫,應該是兼容性問題!

該ocr識別效果很好,望高手給看看,如何在易中掛接,改進下圖片對齊,作個車牌識別也能夠!

最近在開發 Delphi 7中須要使用Office 2003的OCR識別組件。  總結工做中發現的問題

 

1、  服務中建立MODI.Document,報未註冊 EOleException。

其實核心MDIVWCTL.DLL已reg,一樣的主exe中核心代碼運行沒問題, 緣由在於 原來exe程序中主窗體上丟了一個 TMiDocView可視OLE控件。

嘗試如下方法:

1. TService聲明Private MiDoc:TMiDocView對象, Create時建立該對象

2. 純接口方式 CoDocument.Create; IDocument.Create('文件名')

3. CreateOLEOBject('MODI.DOcument') 動態建立comserver as IDocument

4. way1 中指定 MiDoc.FileName, MiDoc.Document as IDocument

組合以上均未能解決問題

5. IDocument.Create時try 保護 except中再次 create;

偶爾能調過該問題,Create成功, 可是運行屢次後 exception明顯變多

 

此問題在網上搜索多日,碰到不少一樣的案例,均沒發現解決方法。

 

2、 核心的dll

C:\Program Files\Common Files\Microsoft Shared\MODI\11.0 下

MDIVWCTL.dll (核心COM)

MSPGIMME.dll

3、 文件鎖定問題

 

IDocument.Create('c:\aa.tif');

...

IDocument.Close;  //運行完這行 文件仍是一直被鎖定,沒法刪除。

 

這個問題應該是能解決, 知道的朋友相煩告訴一下  :-)

相關文章
相關標籤/搜索