本教程展示了如何自动识别一种形式,从一个非结构化文档检索数据使用LEADTOOLS SDK . net c#控制台应用程序。
被使用的形式AutoFormsEngine搭配LEADTOOLS形式认可。数据提取使用JSON文件中定义的规则集搭配LEADTOOLS文档分析器。
| 概述 | |
|---|---|
| 总结 | 本教程介绍了如何识别和解析非结构化形式在c# Windows控制台应用程序。 |
| 完成时间 | 20分钟 |
| 项目 | 下载教程项目(3 KB) |
| 平台 | c# Windows控制台应用程序 |
| IDE | Visual Studio 2019中,2022年 |
| 运行许可证 | 下载LEADTOOLS |
熟悉基本的步骤创建一个项目的审查添加引用和设置一个许可证教程,在工作之前自动识别和解析非结构化文档- c#控制台教程。
从项目中创建的副本添加引用和设置一个许可证教程。如果你没有这个项目,按照这个教程中的步骤创建它。
的引用需要取决于项目的目的。引用可以通过添加一个或另一个下面的两种方法(但不是全部)。对于这个项目,还需要以下引用:
如果使用NuGet引用,本教程需要以下NuGet包:
Leadtools.Document.SdkNewtonsoft.Json如果使用本地DLL的引用,下面的DLL是必要的。dll位于< INSTALL_DIR > \ LEADTOOLS22 \ Bin \ Dotnet4 \ x64:
Leadtools.dllLeadtools.Barcode.dllLeadtools.Codecs.dllLeadtools.Codecs.Tif.dllLeadtools.Codecs.Fax.dllLeadtools.Document.dllLeadtools.Document.Analytics.dllLeadtools.Document.Pdf.dllLeadtools.Document.Writer.dllLeadtools.Forms.Auto.dllLeadtools.Forms.Processing.dllLeadtools.Forms.Recognition.dllLeadtools.Pdf.dllLeadtools.Ocr.dllLeadtools.Ocr.LEADEngine.dllNewtonsoft.Json.dll对于一个完整的列表的应用程序所需的DLL文件,请参考文件包含在您的应用程序。
许可解锁项目需要的特性。它必须设置工具箱函数被调用之前。细节包括教程不同的平台,请参考设置一个运行时许可。
有两种类型的运行时许可证:
与项目创建、添加引用,许可,可以开始编码。
为了运行应用程序,你将需要一套主形式和填充的表单识别和过程。每个非结构化阴模组将有以下文件:
。斌(包含属性识别(结构化和非结构化形式)).tif(包含一个黑与白空大师的形象形式(结构化和非结构化形式)).dat(包含表数据信息进行处理(结构化的形式). xml(包含表单字段信息进行处理(结构化的形式). json(包含键/值对从非结构化文档分析器处理(非结构化形式))本教程使用的文件可以下载链接。
在解决方案资源管理器,打开Program.cs。添加以下语句使用块顶部:
使用系统;使用先;使用System.Collections.Generic;使用Leadtools;使用Leadtools.Codecs;使用Leadtools.Ocr;使用Leadtools.Forms.Recognition;使用Leadtools.Forms.Auto;使用Leadtools.Document;使用Leadtools.Document.Analytics;使用Leadtools.Document.Data;使用Leadtools.Document.Unstructured;使用Newtonsoft.Json;
添加以下全球成员:
/ /添加这些全球成员静态AutoFormsEngine autoEngine;静态RasterCodecs编解码器;静态IOcrEngine ocrEngine;静态DiskMasterFormsRepository formsRepository;静态字符串formToRecognize;
在Program.cs,创建一个新的命名方法InitFormsEngine ()并添加以下代码来初始化AutoFormsEngine,RasterCodes,IOcrEngine,DiskMasterFormsRepository对象。该方法将被称为内Main ()下面的方法SetLicense ();。
私人静态无效InitFormsEngine (){编解码器=新RasterCodecs ();ocrEngine = OcrEngineManager.CreateEngine (OcrEngineType.LEAD);ocrEngine.Startup(编解码器,零,零,@“C: \ LEADTOOLS22 \ Bin \常见\ OcrLEADRuntime”);formsRepository =新DiskMasterFormsRepository(编解码器,@“与主表单文件路径目录”);autoEngine =新AutoFormsEngine (formsRepository ocrEngine,零,AutoFormsRecognitionManager。默认| AutoFormsRecognitionManager。80年Ocr, 30日,真正的);Console.WriteLine (“引擎初始化成功!”);}
添加一个新方法RecognizeForm ()到程序类。该方法将在下面被称为InitFormsEngines ();在Main ()方法。将下面的代码添加到给定形式识别的新方法。
私人静态无效RecognizeForm (){varjson = JsonConvert.SerializeObject(编码器);字符串resultMessage =“形式不承认”;formToRecognize =@“填充表单文件路径”;AutoFormsRunResult runResult = autoEngine.Run (formToRecognize,零);如果(runResult ! =零){FormRecognitionResult recognitionResult = runResult.RecognitionResult.Result;resultMessage = $@”这种形式被公认为{runResult.RecognitionResult.MasterForm。名称}与{recognitionResult。信心}%的信心。”;}Console.WriteLine (“识别结果:);Console.WriteLine (resultMessage);Console.WriteLine (“= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = ");}
在程序类,创建一个新的命名方法AnalyzeAndParseDocument ()。以下调用这个方法RecognizeForm ()方法Main ()方法。
私人静态无效AnalyzeAndParseDocument (){字符串_dir = Path.GetDirectoryName (formToRecognize);字符串_fileName = Path.GetFileNameWithoutExtension (formToRecognize);字符串规则集=路径。结合(_dir _fileName +. json”);LEADDocument文档= DocumentFactory.LoadFromFile (formToRecognize,新LoadDocumentOptions ());document.Text。OcrEngine = OcrEngine;/ /创建分析器DocumentAnalyzer分析仪=新DocumentAnalyzer (){读者=新UnstructuredDataReader (),QueryContext =新FileRepositoryContext(规则集)};DocumentAnalyzerRunOptions选项=新DocumentAnalyzerRunOptions {ElementQuery =新RepositoryQuery ()};< ElementSetResult > =分析仪结果列表。运行(文档,选择);字符串resultsMessage =字符串空虚;foreach(ElementSetResult结果在结果)foreach(ElementResult项在result.Items)Console.WriteLine ($“{(item.GetFriendlyName ())} = {(item.Value)}”);}
运送和安装LEADTOOLS SDK示例主形成样本集和填充的表单进行识别和处理。本教程使用这些样品。示例文件可以发现在这个文件路径:< INSTALL_DIR > \ LEADTOOLS22 \ \ \图片形式的资源
添加下面的代码Main ()方法妥善处理在这个应用程序中使用的资源。
静态无效主要(字符串[]参数){试一试{SetLicense ();InitFormsEngine ();RecognizeForm ();AnalyzeAndParseDocument ();codecs.Dispose ();autoEngine.Dispose ();如果(ocrEngine ! =零& & ocrEngine.IsStarted)ocrEngine.Shutdown ();}抓(异常交货){Console.WriteLine (ex.ToString ());}Console.WriteLine (“按任意键退出……”);Console.ReadKey ();}
按运行项目F5,或通过选择调试- >开始调试。
如果步骤正确,控制台显示公认的形式以及解析结果填充表单。
对于这个示例,使用医疗形式。正确地认识到,与91%的信心(0表示没有信心和100%意味着完整的信心)。
< INSTALL_DIR > \ LEADTOOLS22 \ \ \ \非结构化形式\ Healthcareform.pdf图像资源< INSTALL_DIR > \ LEADTOOLS22 \ \ \ \非结构化形式\ Healthcareform.json图像资源
本教程展示了如何创建一个主表单设置使用DiskMasterFormsRepository类,然后如何识别和解析了形式使用AutoFormsEngine和DocumentAnalyzer类。