本教程展示了如何突出使用DocumentAnalyzer类加载文档中的词,根据一个JSON规则集,在WinForms c#应用程序。
概述 | |
---|---|
总结 | 本教程介绍了如何在c#中使用LEADTOOLS文档分析器Windows WinForms应用程序。 |
完成时间 | 30分钟 |
Visual Studio项目 | 下载教程项目(9 KB) |
平台 | WinForms c#应用程序 |
IDE | Visual Studio 2017中,2019年 |
开发许可 | 下载LEADTOOLS |
熟悉基本的步骤创建一个项目的审查添加引用和设置一个许可证和在文档中显示文件查看器教程,在工作之前强调词与文档分析器——WinForms c#教程。
从项目中创建的副本在文档中显示文件查看器教程。如果你没有这个项目,按照这个教程中的步骤创建它。
的引用需要取决于项目的目的。引用可以通过添加一个或另一个下面的两种方法(但不是全部)。对于这个项目,还需要以下引用:
如果使用NuGet引用,本教程需要以下NuGet包:
Leadtools.Annotations.Winforms
如果使用本地DLL的引用,下面的DLL是必要的。dll位于< INSTALL_DIR > \ LEADTOOLS22 \ Bin \ Dotnet4 \ x64
:
Leadtools.Annotations.Automation.dll
Leadtools.Annotations.Engine.dll
Leadtools.Annotations.WinForms.dll
Leadtools.Document.Analytics.dll
Leadtools.Document.Unstructured.dll
Leadtools.Ocr.dll
为哪些dll的完整列表所需的特定功能,参考文件包含在您的应用程序。
许可解锁项目需要的特性。它必须设置工具箱函数被调用之前。详情,包括教程为不同的平台,请参考设置一个运行时许可。
有两种类型的运行时许可证:
请注意
添加LEADTOOLS NuGet和本地引用设置许可中会详细介绍添加引用和设置一个许可证教程。
与项目创建、引用添加许可证,和代码的在文档中显示文件查看器教程补充说,编码就可以开始了。
在解决方案资源管理器,打开Form1.cs
。右键单击设计窗口
并选择视图代码
,或者按F7,将背后的代码形式。添加以下语句的使用
块顶部:
/ /使用块
使用System.Collections.Generic;
使用Leadtools.Annotations.Engine;
使用Leadtools.Annotations.Automation;
使用Leadtools.Annotations.WinForms;
使用Leadtools.Document.Data;
使用Leadtools.Document.Analytics;
使用Leadtools.Document.Unstructured;
在InitDocumentViewer ()
方法,改变createOptions.UseAnnotations
价值真正的
。
varcreateOptions =新DocumentViewerCreateOptions ();
/ /设置显示文档查看器的UI部分
createOptions。ViewContainer =这.Controls.Find (“docViewerPanel”,假)[0];
/ /设置显示缩略图的UI部分
createOptions。ThumbnailsContainer =这.Controls.Find (“thumbPanel”,假)[0];
/ /启用使用注释
createOptions.UseAnnotations=真正的;
/ /创建查看器
是= DocumentViewerFactory.CreateDocumentViewer (createOptions);
添加以下行代码来初始化自动化管理和自动化经理助手:
varautomationManager = documentViewer.Annotations.AutomationManager;
varautomationManagerHelper =新AutomationManagerHelper (automationManager);
使用下面的代码InitUI ()
添加一个方法分析按钮。
varanalyzeButton =新按钮();
analyzeButton。Name =“analyzeButton”;
analyzeButton。文本=“分析”;
analyzeButton。位置=新System.Drawing.Point (loadButton.Location。X + loadButton。宽度,loadButton.Location.Y);
analyzeButton。单击+ =(发送方,e) = > AnalyzeDocument (analyzeButton);
topPanel.Controls.Add (analyzeButton);
添加下面的两条线内LoadDocument ()
方法,在OpenFileDialog声明。这个演示的目的,我们想要加载PDF文档内C: \ LEADTOOLS22 \ \图片资源\ \非结构化形式
目录中。
海底钻井。InitialDirectory =@“C: \ LEADTOOLS22 \资源\图片\ \非结构化形式”;
海底钻井。过滤器=“PDF文件| * . PDF”;
使用下面的代码AnalyzeDocument ()
方法让用户加载JSON规则集和使用它DocumentAnalyzer
识别相关的单词和突出。
私人无效analyzeButton AnalyzeDocument(按钮)
{
字符串规则集=零;
如果(virtualDocument.Pages。数> 0)
{
/ /加载JSON规则集
OpenFileDialog openRuleset =新OpenFileDialog ();
openRuleset。InitialDirectory =@“C: \ LEADTOOLS22 \资源\图片\ \非结构化形式”;
openRuleset。过滤器=“规则集JSON文件(* . JSON) | * . JSON”;
如果(openRuleset.ShowDialog () = = DialogResult.OK)
{
规则集= openRuleset.FileName;
}
如果(规则集! =零)
{
试一试
{
/ /创建分析器
DocumentAnalyzer分析仪=新DocumentAnalyzer ()
{
读者=新UnstructuredDataReader (),
QueryContext =新FileRepositoryContext(规则集)
};
/ /添加行动,强调结果
ActionElementSet行动=新ActionElementSet ();
actions.ActionElements.Add (新MyHighlightAction(是));
DocumentAnalyzerRunOptions选项=新DocumentAnalyzerRunOptions ()
{
ElementQuery =新RepositoryQuery (),
行为=
};
documentViewer.BeginUpdate ();
/ /运行分析器
var结果=分析仪。运行(virtualDocument、期权);
documentViewer.EndUpdate ();
}
抓(LeadtoolsException练习)
{
MessageBox.Show (ex.Message);
}
}
}
其他的
{
MessageBox.Show (“加载文档第一”);
}
}
使用下面的代码添加的实现MyHighlightAction
将处理的结果DocumentAnalzyer
并创建一个突出注释对象中的相应识别项主题是
。
公共类MyHighlightAction: HighlightAction
{
私人主题是docViewer;
公共MyHighlightAction(主题是主题是)
{
Id =“HIGHLIGHT_DOCUMENT”;
docViewer =主题是;
}
公共覆盖无效运行(LEADDocument文档,IList < ElementSetResult >结果)
{
MessageBox.Show ($“文档分析器:{(结果。数> 0 ?结果[0].Items.Count.ToString ():“没有”)}匹配发现。”);
/ /添加编辑注释
过程(文档,结果);
}
私人无效过程(LEADDocument文档,IList < ElementSetResult >结果)
{
foreach(ElementSetResult setResult在结果)
foreach(ElementResult项在setResult.Items)
foreach(LeadRect resultRect在item.ListOfBounds)
{
var自动化= docViewer.Annotations.Automation;
如果(自动化! =零)
{
varpageContainer = automation.Containers[项目。PageNumber - 1];
AnnHiliteObject annHighlight =新AnnHiliteObject ();
annHighlight.Points.Add (resultRect.ToLeadRectD () .TopLeft);
annHighlight.Points.Add (resultRect.ToLeadRectD () .TopRight);
annHighlight.Points.Add (resultRect.ToLeadRectD () .BottomRight);
annHighlight.Points.Add (resultRect.ToLeadRectD () .BottomLeft);
pageContainer.Children.Add (annHighlight);
automation.Invalidate (LeadRectD.Empty);
automation.InvokeAfterObjectChanged (pageContainer。孩子,AnnObjectChangedType.Added);
如果(docViewer。缩略图! =零)
docViewer.Thumbnails.ImageViewer.InvalidateItemByIndex (0);
}
}
}
}
按运行项目F5,或通过选择调试- >开始调试。
如果是正确的步骤,应用程序和文档加载到后运行文档查看器,分析按钮可以用来执行分析根据加载JSON规则集。分析完成后,一个消息框会给结果,并为每个结果注释将一大亮点。
样品使用本教程,使用1040年ez.pdf
和1040年ez.json
规则集的位置:C: \ LEADTOOLS22 \ \图片资源\ \非结构化形式
在本教程中,我们介绍了如何使用JSON文件的规则集DocumentAnalyzer
类加载文档和实现过程HighlightAction
类来画一个AnnHiliteObject
为每个匹配的结果主题是
。