方法突出显示已加载文档中的单词DocumentAnalyzer类,根据JSON规则集,在WPF c#应用程序。
| 概述 | |
|---|---|
| 总结 | 本教程介绍如何在c# Windows WPF应用程序中使用LEADTOOLS文档分析器。 |
| 完成时间 | 30分钟 |
| Visual Studio项目 | 下载教程项目(9kb) |
| 平台 | WPF c#应用程序 |
| IDE | Visual Studio 2017, 2019 |
| 开发许可 | 下载LEADTOOLS |
步骤熟悉创建项目的基本步骤添加引用和设置License而且在文档查看器中显示文件教程,在工作之前用文档分析器高亮单词- WPF c#教程。
中创建的项目的副本开始在文档查看器中显示文件教程。如果您没有该项目,请按照该教程中的步骤创建它。
所需要的参考资料取决于项目的目的。引用可以通过以下两种方法中的一种添加(但不能同时添加)。
如果使用NuGet引用,本教程需要以下NuGet包:
Leadtools.Annotations.WpfLeadtools.Document.Viewer.Wpf如果使用本地DLL引用,则需要以下DLL。dll位于< INSTALL_DIR > \ LEADTOOLS22 \ Bin \ Dotnet4 \ x64:
Leadtools.Annotations.Automation.dllLeadtools.Annotations.Engine.dllLeadtools.Annotations.Wpf.dllLeadtools.Document.Analytics.dllLeadtools.Document.Unstructured.dllLeadtools.Ocr.dll有关特定特性需要哪些dll的完整列表,请参阅在你的申请中包含的文件.
许可证解锁项目所需的特性。它必须在调用任何工具箱函数之前设置。有关详细信息,包括针对不同平台的教程,请参阅设置运行时License.
有两种类型的运行时许可证:
请注意
中详细介绍了添加LEADTOOLS NuGet和本地引用以及设置许可添加引用和设置License教程。
中创建的项目、添加的引用、许可集和代码在文档查看器中显示文件教程添加,编码可以开始。
在解决方案资源管理器,打开MainWindow.xaml.中使用下面的代码MainWindow.xaml部分添加分析菜单项的下面<菜单项名称= " _fileLoad标签。
<MenuItem Name="_fileAnalyze" Header="Analyze" Click="_fileAnalyze_Click"/>
右键单击设计窗口并选择视图代码,或按F7,以显示表单背后的代码。将下列语句添加到使用顶部的块:
//在顶部使用块使用System.Collections.Generic;使用Leadtools.Annotations.Engine;使用Leadtools.Annotations.Automation;使用Leadtools.Annotations.Wpf;使用Leadtools.Document.Data;使用Leadtools.Document.Analytics;使用Leadtools.Document.Unstructured;
在InitDocumentViewer ()方法,改变UseAnnotations价值真正的.它看起来应该如下所示:
私人无效InitDocumentViewer (){varcreateOptions =新DocumentViewerCreateOptions{//设置文档查看器显示的UI部分ViewContainer = _centerGrid,//设置显示缩略图的UI部分ThumbnailsContainer = _thumbnailsTabPageGrid,//启用使用注释UseAnnotations =真正的};//现在创建查看器docViewer = DocumentViewerFactory.CreateDocumentViewer(createOptions);docViewer.View.ImageViewer.Background = SystemColors.AppWorkspaceBrush;docViewer.View.ImageViewer.Zoom (ControlSizeMode。FitAlways, 1, docViewer.View.ImageViewer.DefaultZoomOrigin);docViewer.Thumbnails.ImageViewer.Background = SystemColors.ControlDarkDarkBrush;缓存=新FileCache{CacheDirectory =路径。GetFullPath (@”。\ CacheDir”),};}
的底部添加以下代码行InitDocumentViewer ()方法初始化自动化管理而且自动化管理助手.
varautomationManager = documentViewer.Annotations.AutomationManager;varautomationManagerHelper =新AutomationManagerHelper (automationManager);
添加下面的两行_fileLoad_Click事件处理程序OpenFileDialog声明。的文件中加载PDF文档C: \ LEADTOOLS22 \ \图片资源\ \非结构化形式目录中。
OpenFileDialog ofd =新OpenFileDialog{InitialDirectory =@“C: \ LEADTOOLS22 \资源\图片\ \非结构化形式”,过滤器=“PDF文件| * . PDF”,};
中使用下面的代码_fileAnalyze_Click事件处理程序,使用户能够加载JSON规则集。方法使用该规则集DocumentAnalyzer识别相关单词并标出重点。
私人无效_fileAnalyze_Click (对象发送者,RoutedEventArgs{字符串规则集=零;如果(virtualDocument.Pages。计数> 0){//加载JSON规则集OpenFileDialog openRuleset =新OpenFileDialog{InitialDirectory =@“C: \ LEADTOOLS22 \资源\图片\ \非结构化形式”,过滤器="规则集JSON文件(*.json)|*.json",};varresultDlg = openrulset . showdialog ();如果(resultDlg。HasValue && resultdld . value)规则集= open规则集. filename;如果(规则集! =零){试一试{//创建分析器DocumentAnalyzer分析器=新DocumentAnalyzer (){读者=新UnstructuredDataReader (),QueryContext =新FileRepositoryContext(规则集)};//添加操作以突出显示结果ActionElementSet actions =新ActionElementSet ();actions.ActionElements.Add (新MyHighlightAction (docViewer));documentanalyzerrunnoptions options =新DocumentAnalyzerRunOptions (){ElementQuery =新RepositoryQuery (),Actions = Actions};docViewer.BeginUpdate ();//运行分析器var结果=分析器。运行(virtualDocument、期权);docViewer.EndUpdate ();}抓(LeadtoolsException练习){MessageBox.Show (ex.Message);}}}其他的对话框。显示(“先加载文档”);}
使用下面的代码添加for的实现MyHighlightAction,即对所得到的结果进行处理DocumentAnalzyer属性中的每个识别项对应的突出显示注释对象主题是.类中的独立类MainWindow.xaml.cs文件和应放在外面主窗口类块。
公共类MyHighlightAction: HighlightAction{私人主题是docViewer;公共MyHighlightAction(主题是主题是){Id =“HIGHLIGHT_DOCUMENT”;docViewer = documentViewer;}公共覆盖无效运行(LEADDocument文档,IListresults) {对话框。显示($"文档分析完成:{(结果。计数> 0 ?results[0].Items.Count.ToString(): "没有")}匹配成功。");//添加编校注释过程(文档,结果);}私人无效进程(LEADDocument文档,IList结果) {foreach(ElementSetResult setResult在结果)foreach(ElementResult项在setResult.Items)foreach(LeadRect resultRect在item.ListOfBounds){varautomation = docViewer.Annotations.Automation;如果(自动化! =零){varpageContainer =自动化. 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,或选择调试->开始调试.
如果正确地执行了这些步骤,应用程序将运行并显示许可证已正确设置。要进行测试,请遵循以下步骤:
点击文件->开放我们来看看OpenFileDialog.
选择该文件,它将被加载到主题是.
点击文件->分析我们来看看OpenFileDialog再一次。
选择与查看器中加载的文档相匹配的JSON规则集,然后单击开放.应用程序将搜索与规则集匹配的值并突出显示它们。
若要在本教程中使用示例,请使用1040年ez.pdf和1040年ez.json规则集位于这里:C: \ LEADTOOLS22 \ \图片资源\ \非结构化形式
在本教程中,我们介绍了如何使用JSON规则集文件DocumentAnalyzer类来处理加载的文档并实现HighlightAction类来绘制AnnHiliteObject中的每个匹配结果主题是.