本教程展示如何创建一组主表单,然后使用LEADTOOLS SDK在c# . net 6应用程序中自动识别和处理表单。
| 概述 | |
|---|---|
| 总结 | 本教程介绍如何使用High-Level识别和处理表单AutoFormsEngine类在c# . net 6应用程序中。 |
| 完成时间 | 30分钟 |
| Visual Studio项目 | 下载教程项目(1kb) |
| 平台 | .NET控制台应用程序 |
| IDE | Visual Studio 2022 |
| 运行时目标 | .NET 6或更高版本 |
| 开发许可 | 下载LEADTOOLS |
| 用另一种语言试试 |
|
步骤熟悉创建项目的基本步骤添加引用和设置License教程,在工作之前自动识别和处理表单- c# .NET 6教程。
中创建的项目的副本开始添加引用和设置License教程。如果您没有该项目,请按照该教程中的步骤创建它。
所需要的参考资料取决于项目的目的。引用可以通过NuGet包添加。
本教程需要以下NuGet包:
Leadtools.Document.Sdk有关应用程序需要哪些DLL文件的完整列表,请参阅你的申请中包含的文件.
许可证解锁项目所需的特性。它必须在调用任何工具箱函数之前设置。有关详细信息,包括针对不同平台的教程,请参阅设置运行时License.
有两种类型的运行时许可证:
随着项目的创建、引用的添加和许可的设置,编码就可以开始了。
在解决方案资源管理器,打开Program.cs.将下列语句添加到使用块的顶部Program.cs.
使用系统;使用先;使用Leadtools;使用Leadtools.Codecs;使用Leadtools.Document;使用Leadtools.Forms.Auto;使用Leadtools.Forms.Processing;使用Leadtools.Forms.Recognition;使用Leadtools.Ocr;
将下面的全局变量添加到程序类。
静态AutoFormsEngine autoEngine;静态RasterCodecs编解码器;静态IOcrEngine ocrEngine;静态DiskMasterFormsRepository formsRepository;
控件中添加一个新方法程序类命名InitFormsEngines ().调用InitFormsEngines ()方法中的Main ()方法调用set license,如下所示。
静态无效主要(字符串[]参数){InitLEAD ();InitFormsEngines ();}
将下面的代码添加到InitFormsEngines ()方法初始化AutoFormsEngine,RasterCodecs,IOcrEngine,DiskMasterFormsRepository对象。
静态无效InitFormsEngines (){编解码器=新RasterCodecs ();ocrEngine = OcrEngineManager.CreateEngine(ocrengintype . lead);ocrEngine。启动(编解码器,零,零,@“C: \ LEADTOOLS22 \ Bin \常见\ OcrLEADRuntime”);formsRepository =新DiskMasterFormsRepository(编解码器,@ " C: \ LEADTOOLS22 \ \ \ \ MasterForm集形式\ OCR图像资源”);autoEngine =新AutoFormsEngine (formsRepository ocrEngine,零, AutoFormsRecognitionManager。默认| AutoFormsRecognitionManager。Ocr 30 80真正的);控制台。WriteLine (“引擎初始化成功!”);}
在程序类添加两个新方法命名RecognizeAndProcessForm ()而且ShowProcessedResults (AutoFormsRunResult runResult).调用RecognizeAndProcessForm ()方法中的主要方法。InitFormsEngines ()方法,如下一节所示。调用ShowProcessedResults ()方法,通过runResult正如超载,在底部RecognizeAndProcessForm ()方法,如下所示。
将下面的代码添加到RecognizeAndProcessForm ()基于主表单识别给定表单的方法,并对表单进行处理以提取所需的信息。
静态无效RecognizeAndProcessForm (){试一试{字符串resultMessage =“表格不被认可”;字符串formToRecognize ="C:\LEADTOOLS22\资源\图像\表单\待识别表单\OCR\ w9_ocr_filling .tif";AutoFormsRunResult runResult = autoEngine。运行(formToRecognize零);如果(runResult ! =零){FormRecognitionResult recognitionResult = runResult.RecognitionResult.Result;resultMessage = $该表单已被识别为{runResult.RecognitionResult.MasterForm。名称}和{recognitionResult。信心}%的信心。”;}控制台。WriteLine (“识别结果:);Console.WriteLine (resultMessage);控制台。WriteLine ("=========================================================================");ShowProcessedResults (runResult);}抓(异常交货){Console.WriteLine (ex.Message);}}
将下面的代码添加到ShowProcessedResults ()控件的处理结果RecognizeAndProcessForm ()方法添加到控制台。
//输出处理结果私人静态无效ShowProcessedResults (AutoFormsRunResult runResult){如果(runResult = =零)返回;字符串resultsMessage ="";试一试{foreach(FormPage FormPage在runResult.FormFields)foreach(FormField字段在formPage)如果(字段! =零)resultsMessage = $“{resultsMessage}{字段。Name} ={(字段。结果作为TextFormFieldResult)。文本}\ n”;}抓(异常交货){Console.WriteLine (ex.Message);}如果(字符串.IsNullOrEmpty (resultsMessage)){控制台。WriteLine (“现场处理结果”);控制台。WriteLine (“没有字段被处理”);控制台。WriteLine (“按任意键退出……”);控制台。ReadKey (真正的);}其他的{控制台。WriteLine (“现场处理结果:”);Console.WriteLine (resultsMessage);控制台。WriteLine (“按任意键退出……”);控制台。ReadKey (真正的);}}
请注意
LEADTOOLS SDK附带并安装了样例主表单集和样例填充表单,用于识别和处理。本教程使用这些示例。样例文件安装在
< INSTALL_DIR > \ LEADTOOLS22 \ \ \图片形式的资源.
在主要方法,添加autoEngine.Dispose ()而且ocrEngine.Shutdown ()在RecognizeAndProcessForm ()方法来正确处理AutoFormsEngine并关闭OCR引擎。的Main (string [] args)Section现在看起来应该像这样:
静态无效主要(字符串[]参数){InitLEAD ();InitFormsEngines ();RecognizeAndProcessForm ();autoEngine.Dispose ();如果(ocrEngine ! =零& & ocrEngine.IsStarted)ocrEngine.Shutdown ();}
如果要使用内存流加载表单,则将以下代码添加到RecognizeAndProcessForm ()下方法string formtorecognition = @"C:\LEADTOOLS22\资源\图像\表单\待识别表单\OCR\ w9_ocr_filling .tif";:
使用(varstream = File.OpenRead(formToRecognize)){var选择=新LoadDocumentOptions ();使用(vardocument = DocumentFactory。LoadFromStream(流、期权)){//控制台命令来检查文档是否正确加载Console.WriteLine (document.DocumentId);控制台。WriteLine (“文档加载”);}}
按下运行项目F5,或选择Debug ->开始调试.
如果正确地执行了这些步骤,将出现控制台并显示以下数据结果:
在本例中,使用了W-9表格。它被正确识别,置信度为98%(其中0表示无置信度,100%表示完全置信度)。
方法创建主窗体集DiskMasterFormsRepository类来识别和处理已填充的表单AutoFormsEngine类。