C# 查找PDF页面指定区域中的文本并替换和高亮
对PDF文档中的内容进行查找时,可针对文档全篇内容获取查找结果,也可在PDF指定页面中的特定范围内(矩形框区域)进行查找,对获取的查找结果可执行文本高亮或替换等操作,以下内容将对此作相关介绍(附VB.NET代码,有需要可参考)。
工具/原料
Spire.PDF for .NET pack hotfix 6.12.20
Visual Studio2013
.NET FrameWork 4.5.1
dll文件获取及导入:
1、可通过E-iceblue中文官网下载6.12.20版本的Spire.PDF for .NET hotfix(注:hotfix版本不用安装即可使用,pack版本需要安装到本地),下载后,解压到指定路径,完成解压后,将文件夹Bin下的Spire.Pdf.dll文件添加引用到VS程序(添加引用结果如下图):

vb.net代码
1、Imports Spire.PdfImports Spire.Pdf.General.FindImports Spire.Pdf.镟搞赃呓GraphicsImports System.DrawingNamespace FindAndHighlightText2 Class Program Private Shared Sub Main(args As String()) '加载PDF测试文档 Dim pdf As New PdfDocument() pdf.LoadFromFile("咖啡豆.pdf", FileFormat.PDF) '指定需要查找的页面区域范围 Dim pagerec As New RectangleF(0, 0, 500, 700) '在第一页的指定区域查找指定文本 Dim findCollection1 As PdfTextFindCollection = pdf.Pages(0).FindText(pagerec, "咖啡豆", TextFindParameter.WholeWord) Dim findCollection2 As PdfTextFindCollection = pdf.Pages(0).FindText(pagerec, "洪都拉斯", TextFindParameter.WholeWord) '替换查找结果 Dim brush As PdfBrush = New PdfSolidBrush(Color.Red) Dim font As New PdfTrueTypeFont(New Font("Arial", 12F, FontStyle.Regular)) Dim textrec As RectangleF For Each find1 As PdfTextFind In findCollection1.Finds textrec = find1.Bounds pdf.Pages(0).Canvas.DrawRectangle(PdfBrushes.White, textrec) pdf.Pages(0).Canvas.DrawString("NewText", font, brush, textrec) Next '高亮查找结果 For Each find2 As PdfTextFind In findCollection2.Finds find2.ApplyHighLight(Color.Yellow) Next '保存文档 pdf.SaveToFile("result.pdf", FileFormat.PDF) System.Diagnostics.Process.Start("result.pdf") End Sub End ClassEnd Namespace