本页内容
搜索和选取
当用户在 PDF 文档中执行文字搜索时,搜索结果通常会高亮显示匹配的文本片段,并提供导航到对应位置的链接。 通过 ComPDFKit SDK 提供的搜索和选取功能,您可以轻松实现这一功能。
文字搜索
文字搜索允许用户在整个 PDF 文档中输入关键字,以便查找匹配的文本。
文字搜索功能使用户能够更迅速地定位和检索大量文档中的信息,提高了文档的可访问性和搜索效率。这对于处理大型文档、研究资料或查找特定信息的工作流程非常有帮助。
文字搜索的步骤如下:
1.指定搜索结果存储位置与内容的容器。
2.创建CPDFTextPage
与CPDFTextSearcher
对象。
3.指定被搜索的CPDFTextPage
对象,需要搜索的关键字,搜索选项,以及精确搜索结果前后的字符数。
4.使用临时变量存储搜索结果的上下文。
5.每当搜索到结果时将临时变量内容记录到容器中。
以下是搜索指定文本的示例代码:
C#
// 指定搜索结果存储位置与内容的变量。
List<Rect> rectList = new List<Rect>();
List<string> stringList = new List<string>();
// 指定被搜索的`CPDFTextPage`对象,需要搜索的关键字,搜索选项为大小写敏感且匹配整个单词,以及开始记录的搜索结果序号。
CPDFTextPage textPage = myCPDFPage.GetTextPage();
CPDFTextSearcher searcher = new CPDFTextSearcher();
if (searcher.FindStart(textPage, searchKeywords, C_Search_Options.Search_Case_Sensitive | C_Search_Options.Search_Match_Whole_Word, 0))
{
// 使用临时变量存储搜索结果的上下文以及所在位置,每当搜索到结果时将其记录到容器中。
CRect textRect = new CRect();
string textContent = "";
while (searcher.FindNext(page, textPage, ref textRect, ref textContent, ref findIndex))
{
// 每当搜索到结果时将临时变量内容记录到容器中。
stringList.Add(textContent);
rectList.Add(new Rect(textRect.left, textRect.top, textRect.width(), textRect.height()));
}
}
搜索设置说明
选项 | 描述 | 值 |
---|---|---|
C_Search_Options.Search_Case_Insensitive | 大小写不敏感 | 0 |
C_Search_Options.Search_Case_Sensitive | 大小写敏感 | 1 |
C_Search_Options.Search_Match_Whole_Word | 匹配整个单词 | 2 |
文本选取
文本内容存储在与对应页面相关联的 CPDFPage
对象中。CPDFPage
对象可用于检索有关 PDF 页面中文本的信息,例如单个字符、单词、指定字符范围或边界内的文本内容等。
通过两个对角坐标点(Point)围成矩形,并将矩形覆盖的文本以及文本域位置写入变量,以此模仿拖动鼠标或手指选择文字的操作,以下是示例代码:
C#
void SelectForPage(CPDFPage page, Point fromPoint, Point toPoint, ref List<Rect> rects, ref string textContent)
{
CPDFTextPage textPage = page.GetTextPage();
// 通过两个对角坐标点围成矩形,并取得两点之间矩形空间内的文字内容。
textContent = textPage.GetSelectText(fromPoint, toPoint);
// 通过两个对角坐标点围成矩形,并取得两点之间矩形空间的位置,允许的偏差为(10,10)。
rects = textPage.GetCharsRectAtPos(fromPoint, toPoint, new Point(10, 10));
}