如何解决使用标志提取文本以使用 PyMUPDF
我正在尝试使用 PyMUPDF 1.18.14 从 PDF 中提取粗体文本元素。我希望这会起作用,因为我从文档中了解到 flags=4
以粗体字体为目标。
page = doc[1]
text = page.get_text(flags=4)
print(text)
但它会打印出页面上的所有文本,而不仅仅是粗体文本。
像这样使用 TextPage.extractDICT() (or Page.get_text(“dict”))
时:-
page.get_text("dict",flags=11)["blocks"]
该标志有效,但我无法理解它在做什么。也许在图像和文本块之间切换。
跨度
因此您似乎必须进入 span
才能访问标志。
<page>
<text block>
<line>
<span>
<char>
<image block>
<img>
所以你可以做这样的事情,我在 span 标签上使用了 flags=20
来获得粗体。
page = doc[1]
blocks = page.get_text("dict",flags=11)["blocks"]
for b in blocks: # iterate through the text blocks
for l in b["lines"]: # iterate through the text lines
for s in l["spans"]: # iterate through the text spans
if s["flags"] == 20: # 20 targets bold
print(s)
但这似乎很遥远。
所以我的问题是这是找到粗体元素的最佳方式还是我遗漏了什么?
能够使用 page.search_for()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。