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查找下一个,查找到的内容背景色变为黄色
var SearchStart: Integer = -1; SearchEnd: Integer = -1; SearchText: WString; procedure TForm1.Button10Click(Sender: TObject); begin //读取pdf文件 Pdf1.FileName := 'C:\LargeFile.pdf'; //设置要查找的页 PdfView1.PageNumber := 1; //打开PDF PdfView1.Active := True; //查找的内容 SearchText := '星期一'; //初始化查找信息 SearchStart := PdfView1.FindFirst(SearchText, []); end; procedure TForm1.Button11Click(Sender: TObject); begin //只有调用FindFirst后才能调用FindNext或FindPrevious if SearchStart = -1 then Exit; //查找下一个 SearchStart := PdfView1.FindNext; //查找上一个 //SearchStart := Pdf1.FindPrevious; //如果当前页没有找到时,切换下一页继续查找 if SearchStart > -1 then begin //重绘页面 PdfView1.Invalidate; end else if PdfView1.PageNumber < PdfView1.PageCount then begin PdfView1.PageNumber := PdfView1.PageNumber + 1; SearchStart := PdfView1.FindFirst(SearchText, []); end; end; procedure TForm1.PdfView1Paint(Sender: TObject); begin if not PdfView1.Active then Exit; if SearchStart > -1 then begin //计算字符长度 AnsiString字符的delphi版本,PDFium中使用的是WString类型 SearchEnd := SearchStart + Length(SearchText) - 1; //设置背景色 PdfView1.PaintSelection(SearchStart, SearchEnd, clYellow); end; end;