本教程展示如何创建一组主表单,然后使用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
类。