page.getTextBlocks()
输出
[(42.5, 86.45002746582031, 523.260009765625, 100.22002410888672, TEXT, 0, 0),
(65.75, 103.4000244140625, 266.780029296875, 159.59010314941406, TEXT, 1, 0),
(48.5, 86.123456, 438.292048492, 100.92920404974, TEXT, 0, 0)]
(x0、y0、x1、y1,“块中的线”,块类型,块编号)
我的主要目标是:
在PDF中搜索文本并将其高亮显示
必须搜索的文本可以在页面中存在n次。使用tp.search(text,hit_max=1)
可以限制出现的最大次数,但无法解决问题,因为它将选择文本的第一次出现,但对我来说,第二次或第三次出现可能很重要
我的想法是:
getTextBlocks提取如上所述的文本,使用这个信息,特别是block_no,我想为这个特定的块执行page.searchFor
函数。从逻辑上讲,这应该是可能的,但实际上,我需要关于如何做到这一点的帮助
如果能为实现主要目标提供任何意见,我将不胜感激
谢谢
作为前言,请允许我说,您的问题将有利于我的存储库的问题页面
Page.searchFor()
在页面上搜索任意数量的文本项。限制是点击次数,这有一个您必须在调用中指定的限制。但是你可以在这里使用任何数字(以100为例)。此方法不提取任何文本,忽略字符大小写,还支持非水平文本或跨多行分布的文本。其输出可直接用于创建文本标记注释等当然,您可以使用
Page.getText(option)
的变体自由地提取文本,然后应用您的技巧在输出中找到您想要的内容option
可以是“文本”、“单词”、“块”、“dict”、“rawdict”、“html”、“xhtml”或“xml”。每种输出都有其优点和缺点。许多变体带有文本位置信息,或字体信息,包括文本颜色等。 但正如所说的:如何定位东西取决于你自己。让我再次建议我们在Github回购问题页面上继续这个对话,在这里我可以更好地指向其他资源。或者可以随意使用我的私人电子邮件如果您的问题是(1)定位文本引用,然后(2)将每个引用链接到文本块编号,则只需列出块矩形并检查每个引用是否包含在块矩形中:
相关问题 更多 >
编程相关推荐