L_OcrEngine_GetAutoRecognizeManager - OCR Module - LEAD Engine C++ API Help

L_OcrEngine_GetAutoRecognizeManager

#include "ltocr.h"

L_LTOCR_API L_INT EXT_FUNCTION L_OcrEngine_GetAutoRecognizeManager(engine, autoRecognizeManager)

L_OcrEngine engine; handle to the OCR engine
L_OcrAutoRecognizeManager* autoRecognizeManager; pointer to L_OcrAutoRecognizeManager handle to be updated

Returns a handle to the OCR auto recognize manager.

Parameter Description
engine Handle to the OCR engine.
autoRecognizeManager Pointer to L_OcrAutoRecognizeManager handle to be updated.

Returns

SUCCESS The function was successful.
< 1 An error occurred. Refer to Return Codes.

Comments

This function returns a handle to the OCR engine auto recognize manager that allow you to do one shot "fire and forget" OCR operations.

The L_OcrAutoRecognizeManager provides methods to convert a single or multi-page image file to an OCR'ed document using one call. This could be desired when the default setting of the engine provides the required final document and no fine tuning is required.

The L_OcrAutoRecognizeManager also provide support for callbacks to monitor the various OCR operations, logging and tracing as well as allowing the user to abort at any time.

Required DLLs and Libraries

LTOCR
For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application.

See Also

Functions: L_OcrEngineManager_CreateEngine, L_OcrEngine_Startup, L_OcrEngine_Shutdown, L_OcrEngine_Destroy, L_OcrEngine_GetEngineType, L_OcrEngine_IsStarted, L_OcrEngine_GetSettingManager, L_OcrEngine_GetLanguageManager, L_OcrEngine_GetSpellCheckManager, L_OcrEngine_GetZoneManager, L_OcrEngine_GetDocumentManager, L_OcrEngine_GetWorkDirectory, L_OcrEngine_GetEngineDirectory
Topics: Programming with LEADTOOLS OCR Module - LEAD Engine
Starting and Shutting Down the OCR Engine
LEADTOOLS OCR Module - LEAD Engine Settings

Example

static void LogMessage(const wchar_t* message, ...) 
{ 
   const unsigned int bufferSize = 1024 * 4; 
   wchar_t buffer[bufferSize]; 
 
   if(message != NULL) 
   { 
      va_list ap; 
      va_start(ap, message); 
      vswprintf_s(buffer, message, ap); 
      va_end(ap); 
   } 
   else 
   { 
      wcscpy_s(buffer, L""); 
   } 
 
   _tprintf(buffer); 
} 
 
static L_VOID EXT_CALLBACK MyAutoRecognizeTraceWriteLineCallback(L_OcrAutoRecognizeJob job, L_OcrTraceCategory category, const L_TCHAR* message, L_VOID* /*userData*/) 
{ 
   static const L_TCHAR* categoryNames[] = 
   { 
      L_TEXT("Info"), 
      L_TEXT("Warning"), 
      L_TEXT("Error") 
   }; 
 
   L_OcrAutoRecognizeJobData jobData = {0}; 
   jobData.StructSize = sizeof(L_OcrAutoRecognizeJobData); 
   L_OcrAutoRecognizeJob_GetJobData(job, &jobData); 
   LogMessage(L"Job:%s %s Thread:0x%08X - %s\n", jobData.JobName, categoryNames[category], GetCurrentThreadId(), message); 
} 
 
L_INT L_OcrEngine_GetAutoRecognizeManagerExample() 
{ 
   //Files to process 
   L_TCHAR *imageFiles[]    = {MAKE_IMAGE_PATH(L_TEXT("OCR1.tif")),  
      MAKE_IMAGE_PATH(L_TEXT("OCR2.tif")),  
      MAKE_IMAGE_PATH(L_TEXT("OCR3.tif")),  
      MAKE_IMAGE_PATH(L_TEXT("OCR4.tif"))}; 
   // Output files 
   L_TCHAR *documentFiles[] = {MAKE_IMAGE_PATH(L_TEXT("OCR1.pdf")),  
      MAKE_IMAGE_PATH(L_TEXT("OCR2.pdf")),  
      MAKE_IMAGE_PATH(L_TEXT("OCR3.pdf")),  
      MAKE_IMAGE_PATH(L_TEXT("OCR4.pdf"))}; 
 
   L_INT retCode = -1; 
   L_OcrEngine ocrEngine = NULL; 
   L_OcrAutoRecognizeManager autoRecognizeManager = NULL; 
   L_OcrAutoRecognizeManagerOptions autoRecognizeOptions = { 0 }; 
   L_OcrDocumentManager ocrDocumentManager = NULL; 
 
   std::cout << "Creating an instance of the engine...\n"; 
 
   // Create an instance of the engine 
   retCode = L_OcrEngineManager_CreateEngine(L_OcrEngineType_Advantage, &ocrEngine); 
   if(retCode != SUCCESS) 
      return retCode; 
 
   // Start the engine using default parameters 
   std::cout << "Starting up the engine...\n"; 
   L_OcrEngine_Startup(ocrEngine, NULL, OCR_ADVANTAGE_RUNTIME_DIR); 
 
   // Get the AutoRecognizeManager 
   L_OcrEngine_GetAutoRecognizeManager(ocrEngine, &autoRecognizeManager); 
 
   // Set the options we want 
   autoRecognizeOptions.StructSize = sizeof(L_OcrAutoRecognizeManagerOptions); 
   L_OcrAutoRecognizeManager_GetOptions(autoRecognizeManager, &autoRecognizeOptions); 
 
   // Use maximum CPUs/cores of current machine to speed up recognition 
   autoRecognizeOptions.UseThreads = true; 
 
   // Deskew and auto-orient all pages before recognition 
   autoRecognizeOptions.PreprocessPageCommands = L_OcrAutoPreprocessPageCommands_Deskew | L_OcrAutoPreprocessPageCommands_Rotate; 
 
   // Enable the Trace Callback 
   autoRecognizeOptions.TraceCallback = MyAutoRecognizeTraceWriteLineCallback; 
 
   // Give the manager our updated settings 
   L_OcrAutoRecognizeManager_SetOptions(autoRecognizeManager, &autoRecognizeOptions); 
 
   // Create PDFs with Image/Text option 
   L_OcrEngine_GetDocumentManager(ocrEngine, &ocrDocumentManager); 
   DOCWRTPDFOPTIONS pdfOptions; 
   pdfOptions.Options.uStructSize = sizeof(DOCWRTPDFOPTIONS); 
   L_OcrDocumentManager_GetFormatOptions(ocrDocumentManager, DOCUMENTFORMAT_PDF, &pdfOptions.Options); 
 
   // Set the specific PDF options we want 
   pdfOptions.bImageOverText = true; 
   pdfOptions.PdfProfile = DOCWRTPDFPROFILE_PDF; 
 
   // Give the engine our updated PDF options 
   L_OcrDocumentManager_SetFormatOptions(ocrDocumentManager, DOCUMENTFORMAT_PDF, &pdfOptions.Options); 
 
   // Loop through all the TIF files & convert to PDF 
   for(int index=0; index < _countof(imageFiles); index++) 
   { 
      // OCR each file 
      std::wcout << L"Processing " << imageFiles[index] << std::endl; 
      L_OcrAutoRecognizeManager_Run(autoRecognizeManager, imageFiles[index], documentFiles[index], DOCUMENTFORMAT_PDF, NULL); 
      std::wcout << "Saved: " << documentFiles[index] << std::endl; 
   } 
 
   //CLEANUP 
   L_OcrEngine_Destroy(ocrEngine); 
 
   return SUCCESS; 
} 
Help Version 20.0.2018.6.21
Products | Support | Contact Us | Copyright Notices
© 1991-2018 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS OCR Module - LEAD Engine C API Help