https://www.cnblogs.com/txgh/p/15807085.html
在窗体上放置TPdfView组件PdfView1和TPdf组件Pdf1,并设置PdfView1的Pdf属性指向Pdf1
增加PdfView1的OnPaint事件PdfView1Paint
在窗体上放置TButton组件Button10 和 Button11,并设置Button10的Caption为开始查找 Button11的Caption为查找下一个
点击Button10开始查找,再点击Button11查找下一个,查找到的内容背景色变为黄色
varSearchStart: Integer = -1;SearchEnd: Integer = -1;SearchText: WString;procedure TForm1.Button10Click(Sender: TObject); begin//读取pdf文件Pdf1.FileName := 'C:\LargeFile.pdf';//设置要查找的页PdfView1.PageNumber := 1;//打开PDFPdfView1.Active := True;//查找的内容SearchText := '星期一';//初始化查找信息SearchStart := PdfView1.FindFirst(SearchText, []); end;procedure TForm1.Button11Click(Sender: TObject); begin//只有调用FindFirst后才能调用FindNext或FindPreviousif SearchStart = -1 then Exit;//查找下一个SearchStart := PdfView1.FindNext;//查找上一个//SearchStart := Pdf1.FindPrevious;//如果当前页没有找到时,切换下一页继续查找if SearchStart > -1 thenbegin//重绘页面 PdfView1.Invalidate;endelse if PdfView1.PageNumber < PdfView1.PageCount thenbeginPdfView1.PageNumber := PdfView1.PageNumber + 1;SearchStart := PdfView1.FindFirst(SearchText, []);end; end;procedure TForm1.PdfView1Paint(Sender: TObject); beginif not PdfView1.Active then Exit;if SearchStart > -1 thenbegin//计算字符长度 AnsiString字符的delphi版本,PDFium中使用的是WString类型SearchEnd := SearchStart + Length(SearchText) - 1;//设置背景色 PdfView1.PaintSelection(SearchStart, SearchEnd, clYellow);end; end;
