我正在使用 PyMuPDF 解析 PDF 文件(顺便说一句很棒的库!)
但我需要识别被划掉的单词。
有没有办法做到这一点?
PyMUPDF 文档似乎没有谈论划掉(删除),除非在处理注释时,但他们确实谈论了这些“标志”。
bit 0: superscripted (20)
bit 1: italic (21)
bit 2: serifed (22)
bit 3: monospaced (23)
bit 4: bold (24)
因此,很可能存在文档中未列出的删除代码。
访问这些代码的一种方法是使用垃圾邮件标签通过 textPage 字典结构。有关这6.18.1.4 Span Dictionary
方面的更多信息,请参阅文档。
我想从文档中提取粗体文本并编写此函数
def get_bold_text_from_PDF_page(page_number):
'''
Function to get bold text from PyMUPDF Page object
Parameters:
PyMUPDF doc generator object
Returns:
list of dictionaries each dictionary contains these fields:
Size, flags, font, color, ascender, decender, text, origin, bbox, page_number
'''
blocks = fitz.Page.get_text(page_number, "dict", flags=11)["blocks"]
page_bold_text_list = []
for block in blocks:
for line in block["lines"]:
for span in line["spans"]:
if span['flags'] == 20: # change the 20 here.
span['page_number'] = page.number
page_bold_text_list.append(span)
print(page_bold_text_list)
return page_bold_text_list
对我来说奇怪的是 20 是大胆的。
这个 Adobe 文档可能值得一读 https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf