L_OcrAutoRecognizeManager_SetJobOperationCallback

# include“ltocr.h”

L_LTOCR_APIL_INTEXT_FUNCTIONL_OcrAutoRecognizeManager_SetJobOperationCallback(autoRecognizeManager, callback, userData)

使用此函数设置一个回调,当任何OCR作业正在运行以获取当前操作的信息(创建OCR文档、加载页面、分区、识别、保存等)时触发该回调。

参数

L_OcrAutoRecognizeManagerautoRecognizeManager

OCR引擎自动识别管理器的处理。

L_OcrAutoRecognizeJobOperationCallback回调

指针L_OcrAutoRecognizeJobOperationCallback函数在作业运行时调用。

L_VOID*用户数据

传递给回调函数的可选用户数据。

返回

价值 意义
成功 活动很成功。
< 1 发生错误。指返回代码

评论

使用此函数设置一个回调,当任何OCR作业正在运行以获取当前操作的信息(创建OCR文档、加载页面、分区、识别、保存等)时触发该回调。

此回调在作业运行时发生。有关在此回调期间将获得的信息类型的详细信息,请参阅L_OcrAutoRecognizeJobOperationCallbackData

必需的dll和库

另请参阅

功能

主题

例子

L_INT EXT_CALLBACK runJobOperationCB(常量L_OcrAutoRecognizeJobOperationCallbackData* data, /*userData*/){//我们没有将zone传递给作业,所以引擎将尝试执行L_OcrPagge_AutoZone,除非我们没有//添加任何区域到输入文档。//我们也可以检查data->IsPostOperation是否等于L_TRUE并操作这些区域//引擎在此位置找到如果(!data->IsPostOperation && data->ImagePageNumber == 1){/ /调试信息开关(数据- >操作){情况下L_OcrAutoRecognizeManagerJobOperation_Other:std::wcout << L"DEBUG——runjobbcb操作:JobOperation_Other"< < std:: endl;打破情况下L_OcrAutoRecognizeManagerJobOperation_CreateDocument:std::wcout << L"DEBUG——runjobbcb操作:JobOperation_CreateDocument"< < std:: endl;打破情况下L_OcrAutoRecognizeManagerJobOperation_LoadPage:std::wcout << L"DEBUG——runjobbcb操作:JobOperation_LoadPage"< < std:: endl;打破情况下L_OcrAutoRecognizeManagerJobOperation_PreprocessPage:std::wcout << L"DEBUG——runjobbcb操作:JobOperation_PreprocessPage"< < std:: endl;打破情况下L_OcrAutoRecognizeManagerJobOperation_ZonePage:std::wcout << L"DEBUG——runjobbcb操作:JobOperation_ZonePage"< < std:: endl;打破情况下L_OcrAutoRecognizeManagerJobOperation_RecognizePage:std::wcout << L"DEBUG——runjobbcb操作:JobOperation_RecognizePage"< < std:: endl;打破情况下L_OcrAutoRecognizeManagerJobOperation_SavePage:std::wcout << L"DEBUG——runjobbcb操作:JobOperation_SavePage"< < std:: endl;打破情况下L_OcrAutoRecognizeManagerJobOperation_Append:std::wcout << L"DEBUG——runjobbcb操作:JobOperation_Append"< < std:: endl;打破情况下L_OcrAutoRecognizeManagerJobOperation_ConvertDocument:std::wcout << L"DEBUG——runjobbcb操作:JobOperation_ConvertDocument"< < std:: endl;打破}//结束调试信息//添加图形区。//如果你注释掉这段代码,结果PDF将包含文本,但由于我们将在这里添加一个区域,//引擎不会自动分区文件。而且,因为我们要加入的区域是//占用整个页面的图形,结果PDF将包含光栅图像,没有文本。如果(data->PageBitmap != NULL && data->Operation == L_OcrAutoRecognizeManagerJobOperation_LoadPage){L_RECT rect = {0,0, data->PageBitmap->Width, data->PageBitmap->Height};L_OcrZone ocrZone = {0};L_OcrZone_Default (&ocrZone);ocrZone。ZoneType = L_OcrZoneType_Graphic;ocrZone。Bounds = rect;L_UINT count = 0;L_OcrPage_GetZoneCount(数据- >页面,数);std::wcout << L“调试——区域计数:”<< count << std::endl;/ /调试输出如果(data->Page != NULL){L_OcrPage_AddZone(数据- >页面,&ocrZone);std::wcout << L“调试—单个区域插入”< < std:: endl;/ /调试输出L_OcrPage_GetZoneCount(数据- >页面,数);std::wcout << LDEBUG——插入分区后的分区计数:<< count << std::endl;/ /调试输出}其他的std::wcout << L“调试——OCR页面为空:”<< count << std::endl;/ /调试输出}}返回成功;}L_INT L_OcrAutoRecognizeManager_SetJobOperationCallbackExample (){L_INT retCode = -1;L_OcrEngine ocrEngine = NULL;L_OcrAutoRecognizeManager autoRecognizeManager = NULL;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;L_OcrEngine_GetAutoRecognizeManager (ocrEngine &autoRecognizeManager);L_OcrAutoRecognizeJobOperationCallback jobOperationCallback;L_OcrAutoRecognizeManager_GetJobOperationCallback(autoRecognizeManager, &jobOperationCallback, NULL);如果(jobOperationCallback == NULL){//在线程中运行作业并等待它完成//当任务完成时,我们将使用回调函数来获得通知L_OcrAutoRecognizeManager_SetJobOperationCallback(autoRecognizeManager, &runJobOperationCB, NULL);}L_OcrAutoRecognizeJobData jobData = {0};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);retCode = L_OcrAutoRecognizeManager_RunJob(autoRecognizeManager, autoRecognizeJob);/ /清理L_OcrAutoRecognizeJob_Destroy (autoRecognizeJob);L_OcrEngine_Destroy (ocrEngine);返回retCode;}
OCR模块- LEAD引擎C API帮助
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。