在 PDF 文档中,通过使用鲜明的颜色来突出显示重要文本是一种常用内容导航和强调方法。特别是在较长的 PDF 文档中,强调关键信息有助于读者快速理解文档内容,从而提高阅读效率。而利用 Python 程序可以轻松快捷地执行突出显示文本的操作,提升 PDF 文档创建及修改的效率。本文将介绍如何使用 Spire.PDF for Python 通过 Python 程序在 PDF 文档中查找并突出显示文本。
安装 Spire.PDF for Python
本教程需要用到 Spire.PDF for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 VS Code 中。
pip install Spire.PDF
如果您不确定如何安装,请参考本教程:如何在 VS Code 中安装 Spire.PDF for Python
用 Python 查找并突出显示 PDF 中的指定文本
利用 Spire.PDF for Python,用户可以使用 PdfPageBase.FindText() 方法查找一个 PDF 页面上出现的所有特定文本,并使用 ApplyHighLight() 方法对出现的文本应用强调颜色。下面是使用 Spire.PDF for Python 高亮显示指定文本的示例:
- 创建一个 PdfDocument 类的对象,并使用 PdfDocument.LoadFromFile() 方法加载 PDF 文档。
- 循环遍历文档中的页面。
- 使用 PdfDocument.Pages.get_Item() 方法获取一个页面。
- 使用 PdfPageBase.FindText() 方法查找页面中指定文本的所有出现位置。
- 循环遍历查找到的所有文本,并使用 ApplyHighLight() 方法为查找到的每个文本应用强调颜色。
- 使用 PdfDocument.SaveToFile() 方法保存文档。
- Python
from spire.pdf import *
from spire.pdf.common import*
# 创建一个PdfDocument类对象并加载PDF文档
pdf = PdfDocument()
pdf.LoadFromFile("示例.pdf")
# 循环遍历PDF文档中的页面
for i in range(pdf.Pages.Count):
# 获取一个页面
page = pdf.Pages.get_Item(i)
# 查找页面上特定文本的所有出现位置
result = page.FindText("云服务器", TextFindParameter.none)
# 突出显示所有查找到的文本
for text in result.Finds:
text.ApplyHighLight(Color.get_Cyan())
# 保存文档
pdf.SaveToFile("output/查找并突出显示.pdf")
查找并突出显示 PDF 页面指定区域的特定文本
除了在整个 PDF 页面上查找并突出显示指定的文本之外,Spire.PDF for Python 还支持通过将 RectangleF 实例作为参数传递给 PdfPageBase.FindText() 方法,从而在页面的指定区域内查找并突出显示指定的文本。具体操作步骤如下:
- 创建一个 PdfDocument 类的对象,并使用 PdfDocument.LoadFromFile() 方法加载 PDF 文档。
- 使用 PdfDocument.Pages.get_Item() 方法获取文档的第一页。
- 创建 RectangleF 实例。
- 使用 PdfPageBase.FindText() 方法在第一页的指定矩形区域内查找指定文本的所有出现位置。
- 循环遍历查找到的文本,并使用 ApplyHighLight() 方法对每个查找到的文本应用强调颜色。
- 使用 PdfDocument.SaveToFile() 方法保存文档。
- Python
from spire.pdf.common import *
from spire.pdf import *
# 创建PdfDocument类的对象并加载PDF文档
pdf = PdfDocument()
pdf.LoadFromFile("示例.pdf")
# 获取页面
pdfPageBase = pdf.Pages.get_Item(0)
# 定义一个矩形区域
rctg = RectangleF(0.0, 0.0, pdfPageBase.ActualSize.Width, 300.0)
# 在矩形区域中查找指定文本的所有出现位置
findCollection = pdfPageBase.FindText(rctg, "云服务器", TextFindParameter.IgnoreCase)
# 循环遍历查找到的文本
for find in findCollection.Finds:
# 突出显示每个查找到的文本
find.ApplyHighLight(Color.get_Green())
# 保存文档
pdf.SaveToFile("output/区域查找并突出显示.pdf")
pdf.Close()
通过正则表达式查找并突出显示 PDF 中的指定文本
有时需要突出显示的文本并不完全相同,但具有相似的特征。在这种情况下,正则表达式来可以用来进行更加灵活的文本查找。用户可以通过将 TextFindParameter.Regex 作为参数传递给 PdfPageBase.FindText() 方法,从而在 PDF 文档中使用正则表达式来查找文本。具体步骤如下:
- 创建一个 PdfDocument 类的对象,并使用 PdfDocument.LoadFromFile() 方法加载 PDF 文档。
- 指定正则表达式。
- 使用 PdfDocument.Pages.get_Item() 方法获取一个页面。
- 使用 PdfPageBase.FindText() 方法在页面上使用正则表达式查找匹配的文本。
- 循环遍历匹配的文本,并使用 ApplyHighLight() 方法对文本应用突出显示的颜色。
- 使用 PdfDocument.SaveToFile() 方法保存文档。
- Python
from spire.pdf import *
from spire.pdf.common import *
# 创建一个PdfDocument类的对象并加载PDF文档
pdf = PdfDocument()
pdf.LoadFromFile("示例.pdf")
# 指定匹配数字以及百分数的正则表达式
regex = r'\d+(?:\.\d+)?%?'
# 获取文档第二页
page = pdf.Pages.get_Item(1)
# 使用指定的正则表达式在页面上查找匹配的文本
result = page.FindText(regex, TextFindParameter.Regex)
# 高亮显示所有匹配的文本
for text in result.Finds:
text.ApplyHighLight(Color.get_DeepPink())
# 保存文档
pdf.SaveToFile("output/正则表达式查找并突出显示.pdf")
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。