用文档分析器高亮单词- WPF c#

方法突出显示已加载文档中的单词DocumentAnalyzer类,根据JSON规则集,在WPF c#应用程序。

概述
总结 本教程介绍如何在c# Windows WPF应用程序中使用LEADTOOLS文档分析器。
完成时间 30分钟
Visual Studio项目 下载教程项目(9kb)
平台 WPF c#应用程序
IDE Visual Studio 2017, 2019
开发许可 下载LEADTOOLS

所需的知识

步骤熟悉创建项目的基本步骤添加引用和设置License而且在文档查看器中显示文件教程,在工作之前用文档分析器高亮单词- WPF c#教程。

创建项目并添加LEADTOOLS引用

中创建的项目的副本开始在文档查看器中显示文件教程。如果您没有该项目,请按照该教程中的步骤创建它。

所需要的参考资料取决于项目的目的。引用可以通过以下两种方法中的一种添加(但不能同时添加)。

如果使用NuGet引用,本教程需要以下NuGet包:

如果使用本地DLL引用,则需要以下DLL。dll位于< INSTALL_DIR > \ LEADTOOLS22 \ Bin \ Dotnet4 \ x64:

有关特定特性需要哪些dll的完整列表,请参阅在你的申请中包含的文件

设置License文件

许可证解锁项目所需的特性。它必须在调用任何工具箱函数之前设置。有关详细信息,包括针对不同平台的教程,请参阅设置运行时License

有两种类型的运行时许可证:

请注意

中详细介绍了添加LEADTOOLS NuGet和本地引用以及设置许可添加引用和设置License教程。

初始化文档查看器以使用自动注释

中创建的项目、添加的引用、许可集和代码在文档查看器中显示文件教程添加,编码可以开始。

解决方案资源管理器,打开MainWindow.xaml.中使用下面的代码MainWindow.xaml部分添加分析菜单项的下面<菜单项名称= " _fileLoad标签。

<MenuItem Name="_fileAnalyze" Header="Analyze" Click="_fileAnalyze_Click"/>

右键单击设计窗口并选择视图代码,或按F7,以显示表单背后的代码。将下列语句添加到使用顶部的块:

c#
//在顶部使用块使用System.Collections.Generic;使用Leadtools.Annotations.Engine;使用Leadtools.Annotations.Automation;使用Leadtools.Annotations.Wpf;使用Leadtools.Document.Data;使用Leadtools.Document.Analytics;使用Leadtools.Document.Unstructured;

InitDocumentViewer ()方法,改变UseAnnotations价值真正的.它看起来应该如下所示:

c#
私人无效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;缓存=FileCacheCacheDirectory =路径。GetFullPath (@”。\ CacheDir”),};

的底部添加以下代码行InitDocumentViewer ()方法初始化自动化管理而且自动化管理助手

c#
varautomationManager = documentViewer.Annotations.AutomationManager;varautomationManagerHelper =AutomationManagerHelper (automationManager);

添加文档分析器代码

添加下面的两行_fileLoad_Click事件处理程序OpenFileDialog声明。的文件中加载PDF文档C: \ LEADTOOLS22 \ \图片资源\ \非结构化形式目录中。

c#
OpenFileDialog ofd =OpenFileDialogInitialDirectory =@“C: \ LEADTOOLS22 \资源\图片\ \非结构化形式”过滤器=“PDF文件| * . PDF”};

中使用下面的代码_fileAnalyze_Click事件处理程序,使用户能够加载JSON规则集。方法使用该规则集DocumentAnalyzer识别相关单词并标出重点。

c#
私人无效_fileAnalyze_Click (对象发送者,RoutedEventArgs字符串规则集=如果(virtualDocument.Pages。计数> 0)//加载JSON规则集OpenFileDialog openRuleset =OpenFileDialogInitialDirectory =@“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文件和应放在外面主窗口类块。

c#
公共MyHighlightAction: HighlightAction私人主题是docViewer;公共MyHighlightAction(主题是主题是)Id =“HIGHLIGHT_DOCUMENT”docViewer = documentViewer;公共覆盖无效运行(LEADDocument文档,IList results)对话框。显示($"文档分析完成:{(结果。计数> 0 ?results[0].Items.Count.ToString(): "没有")}匹配成功。");//添加编校注释过程(文档,结果);私人无效进程(LEADDocument文档,IList结果)foreach(ElementSetResult setResult结果)foreach(ElementResult项setResult.Items)foreach(LeadRect resultRectitem.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,或选择调试->开始调试

如果正确地执行了这些步骤,应用程序将运行并显示许可证已正确设置。要进行测试,请遵循以下步骤:

  1. 点击文件->开放我们来看看OpenFileDialog

  2. 选择该文件,它将被加载到主题是

  3. 点击文件->分析我们来看看OpenFileDialog再一次。

  4. 选择与查看器中加载的文档相匹配的JSON规则集,然后单击开放.应用程序将搜索与规则集匹配的值并突出显示它们。

若要在本教程中使用示例,请使用1040年ez.pdf1040年ez.json规则集位于这里:C: \ LEADTOOLS22 \ \图片资源\ \非结构化形式

突出显示来自DocumentAnalyzer的结果

总结

在本教程中,我们介绍了如何使用JSON规则集文件DocumentAnalyzer类来处理加载的文档并实现HighlightAction类来绘制AnnHiliteObject中的每个匹配结果主题是

另请参阅

iOS
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2023领德科技有限公司版权所有。