问题描述
根据文档page.searchFor(),page.searchFor(needle,hit_max=16,quads=False,flags=None).
在页面上搜索针头。大写/小写被忽略。该字符串可能包含空格。
首先,我要精确匹配的坐标。 其次,如果选择的单词是“ inter”,还将从文档中存在的单词内部化中提取“ inter”的坐标,这与我的任务相冲突。
有什么办法可以实现相同目标吗?
doc = fitz.open(document_name)
words = ["Midpoint","CORPORATE","internalization"]
for page in doc:
page._wrapContents()
for word in words:
text_instances = page.searchFor(word)
for rect_coordinates in text_instances:
page.addRedactAnnot(rect_coordinates,text_color = (0,0),fill = (0,0))
page.apply_redactions()
解决方法
您可以使用 page.getText("words")
获取页面上的字词及其位置。
对我有用的解决方法是使用 page.searchFor() 获取可能匹配的位置,并基于使用此位置的较大矩形在 getText 中传递剪辑参数。然后,我使用 re 检查了 getText 中的所有单词是否匹配。
但是,您可以使用 page.getText("words") 获取所有单词并迭代所有获得的单词,因为您只需要精确的单词匹配。您也可以传递用于处理连字符的标志。请参阅doc link