Working with Recognition Results Using OCR Professional

To add code to an existing project in order to work with recognition results:

1.

Start with the program you created in Recognize Pages.

2.

Define the following global IDs in Ezfunc.h in the OCR_Ltdoc2 directory:

#define IDM_GET_OUTPUTFORMAT        207   
#define IDM_SAVE_RESULTS            208 

3.

Edit EZFUNC.RC file in the OCR_Ltdoc2 directory and add the following lines:

MAIN_MENU   MENU   
BEGIN   
   ...    
   ...    
   MENUITEM "Get Output Formats"    IDM_GET_OUTPUTFORMAT   
   MENUITEM "Save Results"          IDM_SAVE_RESULTS   
END 
  

4.

In the MainWndProc procedure, add the following code to the switch statement for WM_COMMAND:

case IDM_GET_OUTPUTFORMAT: 
{ 
   nRet = L_Doc2EnumOutputFileFormats(hDoc, EnumOutputFileFormatsCB, NULL); 
   if (nRet != SUCCESS) 
   { 
      wsprintf (achBuff, TEXT("Error %d enumerating available file formats"), nRet); 
      MessageBox (NULL, achBuff, TEXT("Error"), MB_OK); 
   } 
} 
break; 
case IDM_SAVE_RESULTS: 
{ 
   RESULTOPTIONS2 ResOpts; 
   memset(&ResOpts, 0, sizeof(RESULTOPTIONS2)); 
   nRet = L_Doc2GetRecognitionResultOptions(hDoc, &ResOpts, sizeof(RESULTOPTIONS2)); 
   if (nRet == SUCCESS) 
   { 
      ResOpts.Format = DOC2_WORD_2000; 
      ResOpts.FormatLevel = DOC2_FORMAT_LEVEL_AUTO; 
      L_Doc2SetRecognitionResultOptions(hDoc, &ResOpts); 
      nRet = L_Doc2SaveResultsToFile (hDoc, TEXT("c:\\test.doc")); 
      if (nRet != SUCCESS) 
      { 
         wsprintf (achBuff, TEXT("Error %d in saving recognition results to a file"), nRet); 
         MessageBox (NULL, achBuff, TEXT("Error"), MB_OK); 
      } 
   } 
} 
break; 

5.

Add the following function at the end of the code in EZFUNC.CPP in OCR_Ltdoc2 directory.

L_INT EXT_CALLBACK EnumOutputFileFormatsCB(DOC2_FORMATTYPE Format, L_VOID * pUserData) 
{ 
   UNREFERENCED_PARAMETER(pUserData); 
   TEXTFORMATINFO2 FormatInfo; 
   L_INT nRet; 
   L_TCHAR szBuffer[1024]; 
   memset(&FormatInfo, 0, sizeof(TEXTFORMATINFO2)); 
   nRet = L_Doc2GetTextFormatInfo(hDoc, Format, &FormatInfo, sizeof(TEXTFORMATINFO2)); 
   if (nRet == SUCCESS) 
   { 
      wsprintf(szBuffer, TEXT("Format Name = %s\nFormat DLL Name = %s\nFormat Ext Name = %s\n"), 
      (FormatInfo.pszName) ? FormatInfo.pszName : TEXT(" "), 
      (FormatInfo.pszDLLName) ? FormatInfo.pszDLLName : TEXT(" "), 
      (FormatInfo.pszExtName) ? FormatInfo.pszExtName : TEXT(" ")); 
      MessageBox(NULL, szBuffer, TEXT("Format Info"), MB_OK); 
      if (FormatInfo.pszName) 
         GlobalFreePtr(FormatInfo.pszName); 
      if (FormatInfo.pszDLLName) 
         GlobalFreePtr(FormatInfo.pszDLLName); 
      if (FormatInfo.pszExtName) 
         GlobalFreePtr(FormatInfo.pszExtName); 
   } 
   return SUCCESS; 
} 

6.

Also, add the following statement before the MainWndProc function

L_INT EXT_CALLBACK EnumOutputFileFormatsCB(DOC2_FORMATTYPE Format, L_VOID * pUserData); 
  

7.

Build SimpleLoad.exe.

8.

Run SimpleLoad.exe.

Help Version 19.0.2017.10.27
Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.
LEADTOOLS Professional OCR C API Help