#python #parsing #pdf #pymupdf
#python #синтаксический анализ #PDF #pymupdf
Вопрос:
Я разбираю файл PDF с помощью PyMuPDF (кстати, отличная библиотека!)
Но мне нужно идентифицировать слова, которые зачеркнуты.
Есть ли какой-нибудь способ сделать это?
Комментарии:
1. можете ли вы включить образец PDF?
Ответ №1:
Документы PyMuPDF, похоже, не говорят о вычеркнутых (вычеркнутых), за исключением случаев, когда речь идет о аннотациях, но они говорят об этих «флагах».
bit 0: superscripted (20)
bit 1: italic (21)
bit 2: serifed (22)
bit 3: monospaced (23)
bit 4: bold (24)
Таким образом, вполне может существовать код для вычеркивания, которого нет в документах.
Один из способов получить доступ к этим кодам — через структуру словаря textPage с использованием тега spam. Дополнительную информацию об этом см. 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 было выделено жирным шрифтом.
Возможно, стоит прочитать эти документы Adobehttps://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf