# include“ltocr.h”
L_LTOCR_APIL_INTEXT_FUNCTIONL_OcrAutoRecognizeManager_SetRunJobCallback(autoRecognizeManager, callback, userData)
使用此函数可设置一个回调函数,以便在作业即将开始或作业完成或中止时获得通知。
OCR引擎自动识别管理器的处理。
指针L_OcrAutoRecognizeRunJobCallback函数在作业即将开始或作业完成或中止时获得通知。
传递给回调函数的可选用户数据。
| 价值 | 意义 |
|---|---|
| 成功 | 活动很成功。 |
| < 1 | 发生错误。指返回代码. |
使用此函数可设置一个回调函数,以便在作业即将开始或作业完成或中止时获得通知。
此回调在作业即将启动或作业完成或中止时发生。有关在此回调期间将获得的信息类型的详细信息,请参阅L_OcrAutoRecognizeRunJobCallbackData.
必需的dll和库
常量L_TCHAR* _ocoperationnames [] ={l“LoadImage”,l“SaveImage”,l“PreprocessImage”,l“AutoZone”,l“识别”,l“SaveDocumentPrepare”,l“SaveDocument”,l“SaveDocumentConvertImage”,l“格式”,l“RecognizeOMR”,};(L_OcrAutoRecognizeJob){//显示错误L_OcrAutoRecognizeManagerJobError* errors = NULL;L_UINT errorCount = 0;L_OcrAutoRecognizeJob_GetErrors(ocrJob, &errors, &errorCount);std::wcout << L错误:“< < std:: endl;为(L_UINT i = 0;i < errorCount;我+ +){常量L_OcrAutoRecognizeManagerJobError* error = &errors[i];std::wcout << L“页面:”<< error->ImagePageNumber << L“操作:”<< _ocoperationnames [error->Operation] << L“代码:”<< error->ErrorCode << std::endl;}L_OcrMemory_Free(错误);}MyRunJobCB(常量L_OcrAutoRecognizeRunJobCallbackData* data, L_VOID* /*userData*/{std::wcout << L“MyRunJobCallback解雇了…\ nStatus:“<< data->Status << std::endl;如果(数据- > IsCompleted)std::wcout << L“完成工作”< < std:: endl;其他的std::wcout << L“工作仍在进行中”< < std:: endl;如果(data->Status != SUCCESS)ShowJobErrors(数据- >工作);返回成功;}L_INT L_OcrAutoRecognizeManager_SetRunJobCallbackExample (){L_INT retCode = -1;L_OcrEngine ocrEngine = NULL;L_OcrAutoRecognizeManager autoRecognizeManager = NULL;L_OcrAutoRecognizeManagerOptions autoRecognizeOptions = {0};L_OcrAutoRecognizeJob = NULL;//创建引擎实例retCode = L_OcrEngineManager_CreateEngine(L_OcrEngineType_Advantage, &ocrEngine);如果(retCode != SUCCESS)返回retCode;//使用默认参数启动引擎retCode =L_OcrEngine_Startup(ocrEngine, NULL, OCR_ADVANTAGE_RUNTIME_DIR);如果(retCode != SUCCESS)返回retCode;//获取AutoRecognizeManagerL_OcrEngine_GetAutoRecognizeManager (ocrEngine &autoRecognizeManager);//设置我们需要的选项autoRecognizeOptions。StructSize =运算符(L_OcrAutoRecognizeManagerOptions);L_OcrAutoRecognizeManager_GetOptions (autoRecognizeManager &autoRecognizeOptions);//使用当前机器的最大cpu /核数来加速识别autoRecognizeOptions。UseThreads =真正的;//在识别之前,将所有页面倾斜并自动定向autoRecognizeOptions。PreprocessPageCommands = L_OcrAutoPreprocessPageCommands_Deskew | L_OcrAutoPreprocessPageCommands_Rotate;//给经理我们更新的设置L_OcrAutoRecognizeManager_SetOptions (autoRecognizeManager &autoRecognizeOptions);L_OcrAutoRecognizeJobData jobData;jobData。StructSize =运算符(L_OcrAutoRecognizeJobData);wcscpy_s (jobData。ImageFileName MAKE_IMAGE_PATH (L_TEXT (“OCR1.tif”)));wcscpy_s (jobData。文档FileName, MAKE_IMAGE_PATH(L_TEXT(“OCR1.pdf”)));jobData。格式= DOCUMENTFORMAT_PDF;wcscpy_s (jobData。JobName L“MyJob”);jobData。FirstPageNumber = 1;jobData。lastPageNumber = -1;jobData。UserData = NULL;wcscpy_s (jobData。ZonesFileName L_TEXT (""));L_OcrAutoRecognizeManager_CreateJob(autoRecognizeManager, &autoRecognizeJob, &jobData);L_OcrAutoRecognizeRunJobCallback runJobCallback;L_OcrAutoRecognizeManager_GetRunJobCallback(autoRecognizeManager &runJobCallback, NULL);如果(runJobCallback == NULL){//添加回调处理程序L_OcrAutoRecognizeManager_SetRunJobCallback(autoRecognizeManager, & myrunjobbcb, NULL);}//运行作业retCode = L_OcrAutoRecognizeManager_RunJob(autoRecognizeManager, autoRecognizeJob);/ /清理L_OcrAutoRecognizeJob_Destroy (autoRecognizeJob);L_OcrEngine_Destroy (ocrEngine);返回retCode;}