←选择平台

找到方法

总结

搜索文档的页面以查找与提供的文本选项匹配的内容。

语法
c#
VB
c++
公共函数找到(按值传递选项作为DocumentViewerFindText作为IList接口(DocumentViewerMultiLineTextItem

参数

选项

的一个实例DocumentViewerFindText其中包含边界、开始位置、匹配选项和结果后操作的选项。

返回值

类型列表DocumentViewerMultiLineTextItem,其中列表中的每个项都是搜索的匹配项。如果没有找到匹配项,返回,而不是一个空列表。

讲话

找到的页面文档查找搜索文本的匹配项。期权可以通过DocumentViewerFindText,允许指定边界、起始位置、匹配选项、呈现和选择。

找到是同步操作,应返回的列表DocumentViewerMultiLineTextItem,每根火柴一根。如果没有找到匹配项,返回,而不是空数组。

找到会透过主题是。操作事件。DocumentViewerOperationEventArgs。操作属性设置为DocumentViewerOperation。FindText找到将在搜索时发送每个页面的结果,并在操作结束时发送所有结果。设置DocumentViewerOperationEventArgs。中止真正的将取消操作,但不呈现任何结果(即使DocumentViewerFindText。调整RenderResults真正的).

如果一页是DocumentPageText在搜索页面时没有检索到,找到可以检索DocumentPageText的值获取该页的数据AutoGetText.如果没有DocumentPageText是否找到,页面是否会返回作为该页上搜索的结果。

搜索选项

DocumentViewerFindText。BeginPosition和[DocumentViewerFindText。设置界限而且方向关于搜索。查找文本操作将始终朝着的方向进行搜索DocumentViewerFindText。BeginPosition[DocumentViewerFindText。EndPosition], even if [DocumentViewerFindText.EndPosition] is a lower page number and/or character index. Switching these two properties will change the direction of search.

默认情况下,DocumentViewerFindText。开始设置为DocumentViewerFindTextStart。BeginPosition,这意味着搜索将永远从DocumentViewerFindText。BeginPosition.的其他值DocumentViewerFindText。开始允许搜索从提供的边界之间的某个地方开始(在文本选择处使用SelectedTextBeginSelectedTextEnd,或手动设置位置用DocumentViewerFindText。ManualStartPosition),然后创建两个子搜索:

  1. 从新的开始位置到[DocumentViewerFindText]的搜索。EndPosition]
  2. DocumentViewerFindText。BeginPosition第二次搜索只有在以下情况下才会运行DocumentViewerFindText。FindAllDocumentViewerFindText。循环使用。

可以自动突出显示结果DocumentViewerFindText。调整RenderResults而且FoundTextBrush.需要注意的是,后续调用将继续添加到要呈现的结果的内部列表中,因此,最好在每次调用之前清除最后结果的呈现找到ClearRenderedFoundText.所有结果将按从开始位置到停止位置的顺序返回,并且可以自动选择和滚动到第一个结果DocumentViewerFindText。SelectFirstResult

以下是对每个选项的简要说明:

选项 描述
DocumentViewerFindText。BeginPosition 设置搜索区域的边界之一,并帮助确定方向。
[DocumentViewerFindText。EndPosition] 设置搜索区域的边界之一,并帮助确定方向。
DocumentViewerFindText。文本 将文本设置为匹配。
DocumentViewerFindText。MatchCase 指示大小写对搜索是否重要。
DocumentViewerFindText。WholeWordsOnly 指示是否DocumentViewerFindText。文本应该只匹配整页文字。
DocumentViewerFindText。FindAll 指示是搜索范围内的所有匹配项,还是只搜索第一个匹配项。
DocumentViewerFindText。调整RenderResults 属性中的结果是否突出显示主题是。视图
DocumentViewerFindText。SelectFirstResult 自动将第一个排序结果设置为所选文本。
DocumentViewerFindText。开始 为边界内的搜索设置一个新的起始位置,就像文本选择一样。
DocumentViewerFindText。ManualStartPosition 的值,允许手动选择字符索引DocumentViewerFindText。开始
DocumentViewerFindText。循环 指示是否返回以搜索之前未覆盖的其余边界DocumentViewerFindText。开始

一个副本的最后一个选项提供给一个完成找到可于LastFindText直到ClearLastFindText被称为。与以前的版本不同,DocumentViewerFindText不保存任何内部状态,因此,除非文档的某些内容发生了更改(例如使用DocumentViewerFindTextStart。InSelectionDocumentViewerFindTextStart。AfterSelection),相同DocumentViewerFindText输入实例应该返回相同的结果集。

多行和多页搜索

找到将自动在文本行和文本页之间搜索,在行末使用“隐藏空间”的概念。找到将识别单词/行结束,并允许用空格分隔符匹配下一行的文本。如果找到可以识别一段文字的结尾,下一行文字就不会匹配了。

一些搜索词“Hello World”的例子:

findtext-multiline-newpage.png
findtext-multiline-newline.png
findtext-multiline-sameline.png

搜索应用程序

在页面上查找文本时,一个常见的场景是支持“增量查找”、“查找下一个”和“查找上一个”操作。“查找下一项”和“查找上一项”用于从一个匹配项继续搜索到某个方向的下一个匹配项,“增量查找”尝试从当前位置_内继续匹配,当匹配失败时尝试“查找下一项”。这些操作可以使用DocumentViewerFindText中的不同选项:

  1. 设置搜索的边界DocumentViewerFindText。BeginPosition和[DocumentViewerFindText。像往常一样。例如,可以从第1页字符0搜索到第3页字符-1(页末)。将值切换到DocumentViewerFindText。BeginPosition和[DocumentViewerFindText。EndPosition]will change whether the operation is a "Find Next" or "Find Previous".

  2. DocumentViewerFindText。开始两种选择之一:

    • DocumentViewerFindTextStart。InSelection从当前选定的文本中继续搜索。这对于“增量查找”操作非常理想,例如,“L”已经从以前的查找中选中,并且您希望继续匹配后面的剩余文本“EADTOOLS”,而不是查找下一个或上一个匹配。

    • DocumentViewerFindTextStart。AfterSelection开始搜索后,选择结束,在搜索的方向。这对于“查找下一个”或“查找上一个”非常有用。如果不存在选择,则DocumentViewerFindText. txt。BeginPosition]作为起点。要继续上面的示例,这将搜索下一个完整的“LEADTOOLS”已经选定的“L”。

  3. 确保DocumentViewerFindText。SelectFirstResult真正的因此,第一个匹配项将成为新的选定项。这是一个关键的步骤,可以继续发送相同的内容DocumentViewerFindText实例,但移动到下一个或上一个结果。

  4. 可选地,使用DocumentViewerFindText。调整RenderResults而且DocumentViewerFindText。FindAllDocumentViewerFindText。循环以确保整个边界区域被选中并突出显示。

例子
注意:完整的示例请参见\Examples\DotNet\CS\DocumentViewerDemo。LEADTOOLS文档查看器演示使用找到执行文本搜索操作。

中创建的示例开始主题是,删除Example函数中的所有代码并添加下面的代码。当用户单击Example按钮时,将找到所有出现的单词“LEAD”。

c#
VB
使用Leadtools;使用Leadtools.Controls;使用Leadtools.Document;使用Leadtools.Document.Viewer;使用Leadtools.Codecs;使用Leadtools.Caching;使用Leadtools.Annotations.Engine;使用Leadtools.Ocr;vartext = _documentViewer.Text;//如果需要,确保我们获得页面文本文本。AutoGetText =真正的//我们将找到所有匹配的"LEAD",忽略大小写var选择=DocumentViewerFindText ();//文本选项。文本=“领导”//忽略大小写选项。MatchCase =//包含该短语的任何单词选项。WholeWordsOnly =//查找所有在边界内的结果,而不仅仅是第一个选项。FindAll=真正的//在视图中突出显示结果选项。调整RenderResults =真正的//可选地更改高亮颜色/ / DocumentViewerText。FoundTextBrush=新SolidBrush(Color.FromArgb(52, Color.Brown));//设置边界保龄球isFindingNext =真正的//我们将边界设置为整个文档,但下面我们可以指定从选中文本的地方开始//或在当前页面vartopOfFirstPage = DocumentViewerTextPosition.CreateBeginOfPage(1);varbottomofastpage = DocumentViewerTextPosition.CreateEndOfPage(_documentViewer.PageCount);如果(isFindingNext)//将开始边界设置为页面上方,以便我们搜索页面下方。选项。BeginPosition = topofffirstpage;选项。结束Position = bottomOfLastPage;其他的//将开始的边界设置为“向下”页,以便我们搜索“向上”页。选项。BeginPosition = bottomOfLastPage;选项。结束Position = topOfFirstPage;//选择视图中的第一个结果(自动滚动视图)选项。SelectFirstResult =真正的如果(text.HasAnySelectedText)//将此值设置为AfterSelection允许我们从所选内容中向前搜索,所以是多个//使用相同的选项对象将循环我们通过所有匹配!//(如果所选文本实际上不存在,搜索将默认为beginPosition)选项。开始=DocumentViewerFindTextStart。AfterSelection;其他的//我们可以从开始的位置开始,但从用户的当前页面开始更有UI意义。//搜索将循环回到开始的位置-这只是改变了起点和结果的顺序。选项。开始=DocumentViewerFindTextStart。ManualPosition;如果(isFindingNext)选项。ManualStartPosition = DocumentViewerTextPosition.CreateBeginOfPage(_documentViewer.CurrentPageNumber);其他的选项。ManualStartPosition = DocumentViewerTextPosition.CreateEndOfPage(_documentViewer.CurrentPageNumber);//如果我们只是寻找第一个匹配,我们可以使用"Loop"来循环//如果我们在开始位置和结束边界之间没有发现任何东西。/ /选项。循环=真正的;//你可能想要清除之前突出显示的结果//在屏幕上,这样只有我们的新结果将显示。text.ClearRenderedFoundText ();/ /搜索varresults = text.Find(options);intresultsCount = results !=?结果。数:0;如果(resultsCount > 0)控制台。WriteLine (字符串.Format ("发现{0}结果"resultsCount));其他的控制台。WriteLine (“没有找到匹配的。”);
进口Leadtools进口Leadtools。控制进口Leadtools。文档进口Leadtools.Document.Viewer进口Leadtools。编解码器进口Leadtools。缓存进口Leadtools.Annotations.Engine进口Leadtools。光学字符识别昏暗的文本作为DocumentViewerText = _documentViewer。文本“首先检查这一页是否有文本昏暗的pageNumber作为整数= _documentViewer。CurrentPageNumber如果text.HasDocumentPageText (pageNumber)然后’接收短信text.GetDocumentPageText (pageNumber)结束如果'清除最后的查找数据(如果有)text.ClearLastFindText ()找出第一次出现“LEAD”这个词的地方,忽略大小写昏暗的findText作为DocumentViewerFindText ()文本findText。文本=“领导”忽略情况findText。MatchCase=任何包含该短语的单词findText。WholeWordsOnly =“找出所有在边界内的结果,而不仅仅是第一个findText。FindAll =真正的’在视图中突出显示结果findText。调整RenderResults =真正的设定界限昏暗的isFindingNext作为布尔真正的“我们将边界设置为整个文档,但下面我们可以指定从选中文本的地方开始或在当前页昏暗的topOfFirstPage作为DocumentViewerTextPosition = DocumentViewerTextPosition. createbeginofpage (1)昏暗的bottomOfLastPage作为DocumentViewerTextPosition = DocumentViewerTextPosition. createendofpage (_documentViewer.PageCount)如果isFindingNext然后“把开始的边界放在页面上方,这样我们就可以在页面下方搜索。findText。BeginPosition = topofffirstpagefindText。结束Position = bottomOfLastPage其他的“把开始的边界放在页面下方,这样我们就可以在页面上方搜索。findText。BeginPosition = bottomOfLastPagefindText。结束Position = topOfFirstPage结束如果'在视图中选择第一个结果(也会自动滚动视图)findText。SelectFirstResult =真正的如果文本。HasAnySelectedText然后“将这个值设置为AfterSelection可以让我们从所选内容中向前搜索,所以是多重的’使用相同的选项对象将循环我们通过所有的匹配!’(如果所选文本实际上不存在,搜索将默认为beginPosition。)findText。开始=DocumentViewerFindTextStart。AfterSelection其他的我们可以从开始的位置开始,但从用户当前页面开始在UI上更有意义。“搜索会回到开始的位置,这只是改变了搜索结果的起点和顺序。”findText。开始=DocumentViewerFindTextStart。ManualPosition如果isFindingNext然后findText。ManualStartPosition = DocumentViewerTextPosition.CreateBeginOfPage(_documentViewer.CurrentPageNumber)其他的findText。ManualStartPosition = DocumentViewerTextPosition.CreateEndOfPage(_documentViewer.CurrentPageNumber)结束如果结束如果“如果我们只是在寻找第一个匹配,我们可以使用‘循环’来循环'如果我们在起始位置和结束边界之间没有发现任何东西。“findText。循环= True你可能想要清除之前突出显示的结果,这样就只会显示我们的新结果。text.ClearRenderedFoundText ()的搜索昏暗的结果作为IList(Of DocumentViewerMultiLineTextItem) = text.Find(findText)昏暗的resultsCount作为整数如果(结果不是没有什么,结果。, 0)如果resultsCount > 0然后对话框。显示(字符串.Format ("发现{0}结果", resultsCount))其他的对话框。显示(“没有找到匹配的。”结束如果
需求
目标平台
Leadtools.Document.Viewer.WinForms组装
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。