# include“ltocr.h”
L_LTOCR_APIL_INTEXT_FUNCTIONL_OcrEngine_GetAutoRecognizeManager(引擎、autoRecognizeManager)
返回一个句柄到OCR自动识别管理器。
OCR引擎的句柄。
指针L_OcrAutoRecognizeManager要更新的句柄。
| 价值 | 意义 |
|---|---|
| 成功 | 活动很成功。 |
| < 1 | 发生错误。指返回代码. |
该函数返回OCR引擎自动识别管理器的句柄,允许您执行一次“发射并忘记”OCR操作。
的L_OcrAutoRecognizeManager提供使用一次调用将单个或多页图像文件转换为OCR文档的方法。当引擎的默认设置提供了所需的最终文档,并且不需要进行微调时,可能需要这样做。
的L_OcrAutoRecognizeManager还提供回调支持来监控各种OCR操作,记录和跟踪,以及允许用户在任何时候中止。
必需的dll和库
静态无效LogMessage (常量wchar_t*消息,…){常量无符号intbufferSize = 1024 * 4;wchar_t缓冲(bufferSize);如果(message != NULL){va_list美联社;va_start(美联社消息);Vswprintf_s (buffer, message, ap);va_end(美联社);}其他的{wcscpy_s(缓冲区,L"");}_tprintf(缓冲);}静态MyAutoRecognizeTraceWriteLineCallback(L_OcrAutoRecognizeJob作业,L_OcrTraceCategory类别,常量L_TCHAR* message, L_VOID* /*userData*/){静态常量L_TCHAR* categoryNames[] ={L_TEXT (“信息”),L_TEXT (“警告”),L_TEXT (“错误”)};L_OcrAutoRecognizeJobData jobData = {0};jobData。StructSize =运算符(L_OcrAutoRecognizeJobData);L_OcrAutoRecognizeJob_GetJobData(工作,&jobData);LogMessage(左"工作:%s %s线程:0x%08X - %s\n", jobData。JobName, categoryNames[category], GetCurrentThreadId(), message);}L_INT L_OcrEngine_GetAutoRecognizeManagerExample (){//要处理的文件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”}));//输出文件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 = NULL;std:: cout < <“创建引擎实例…\n”;//创建引擎实例retCode = L_OcrEngineManager_CreateEngine(L_OcrEngineType_Advantage, &ocrEngine);如果(retCode != SUCCESS)返回retCode;//使用默认参数启动引擎std:: cout < <“启动引擎……\n”;L_OcrEngine_Startup(ocrEngine, NULL, OCR_ADVANTAGE_RUNTIME_DIR);//获取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;//启用Trace回调autoRecognizeOptions。TraceCallback = MyAutoRecognizeTraceWriteLineCallback;//给经理我们更新的设置L_OcrAutoRecognizeManager_SetOptions (autoRecognizeManager &autoRecognizeOptions);//使用图像/文本选项创建pdf文件L_OcrEngine_GetDocumentManager (ocrEngine &ocrDocumentManager);DOCWRTPDFOPTIONS pdfOptions;pdfOptions.Options.uStructSize =运算符(DOCWRTPDFOPTIONS);L_OcrDocumentManager_GetFormatOptions(ocrDocumentManager, DOCUMENTFORMAT_PDF, &pdfOptions.Options);//设置我们想要的PDF选项pdfOptions。bImageOverText =真正的;pdfOptions。PdfProfile = DOCWRTPDFPROFILE_PDF;//给引擎我们更新的PDF选项L_OcrDocumentManager_SetFormatOptions(ocrDocumentManager, DOCUMENTFORMAT_PDF, &pdfOptions.Options);//循环所有TIF文件并转换为PDF为(int指数= 0;index < _countof(imageFiles);指数+ +){// OCR每个文件std::wcout << L“处理”<< imageFiles[index] << std::endl;L_OcrAutoRecognizeManager_Run(autoRecognizeManager, imageFiles[index], documentFiles[index], DOCUMENTFORMAT_PDF, NULL);std:: wcout < <“拯救”:<< documentFiles[index] << std::endl;}/ /清理L_OcrEngine_Destroy (ocrEngine);返回成功;}