Извлечение текста с использованием флагов для выделения жирного/курсивного шрифта с использованием PyMUPDFPython

Программы на Python
Anonymous
Извлечение текста с использованием флагов для выделения жирного/курсивного шрифта с использованием PyMUPDF

Сообщение Anonymous »

Я пытаюсь извлечь элементы текста, выделенные жирным шрифтом, из PDF-файлов с помощью PyMUPDF 1.18.14. Я надеялся, что это сработает, поскольку из документации я понимаю, что flags=4 предназначен для жирного шрифта.

Код: Выделить всё

page = doc[1]
text = page.get_text(flags=4)
print(text)
Но он печатает весь текст на странице, а не только жирный текст.
При использовании TextPage.extractDICT() (или Page.get_text («dict»)) вот так:-

Код: Выделить всё

page.get_text("dict", flags=11)["blocks"]
Флаг работает, но мне трудно понять, что он делает. Возможно, переключение между блоками изображения и текста.
Span
Похоже, вам нужно добраться до диапазона code>, чтобы иметь доступ к флагам.

Код: Выделить всё






[img]https://i.stack.imgur.com/rr6Cb.png[/img]
Тогда вы можете сделать что-то вроде этого: я использовал flags=20
в теге span, чтобы получить жирный шрифт.

Код: Выделить всё

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()

Подробнее здесь: https://stackoverflow.com/questions/683 ... ng-pymupdf

Вернуться в «Python»