Я пытаюсь удалить все сноски/концевые сноски в PDF-файле. Все они имеют размер шрифта шесть, а остальной текст — двенадцать.
Пример текста:
"The Industrial Революция ознаменовала собой важный поворотный момент в истории человечества, положив начало массовому производству и урбанизации.»19 («19» будет набрано шестым размером шрифта).
Текст после запуска кода:
"Промышленная революция ознаменовала собой важный поворотный момент в истории человечества, положив начало массовому производству и урбанизации".
Это код, который у меня есть на данный момент, но не работает.
import fitz # PyMuPDF
def remove_small_numbers(pdf_path, output_path):
doc = fitz.open(pdf_path)
for page_num in range(len(doc)):
page = doc.load_page(page_num)
blocks = page.get_text("dict")["blocks"]
for b in blocks:
if "lines" in b:
for line in b["lines"]:
for span in line["spans"]:
if span["size"] == 6 and span["text"].strip().isdigit():
rect = fitz.Rect(span["bbox"]) # Get the bounding box of the span
page.add_rect_annot(rect) # Add a transparent annotation to cover the text
# Remove all annotations (which cover the small numbers)
for annot in page.annots():
page.delete_annot(annot)
doc.save(output_path)
doc.close()
# Example usage
input_pdf = "input.pdf"
output_pdf = "output.pdf"
remove_small_numbers(input_pdf, output_pdf)
Подробнее здесь: https://stackoverflow.com/questions/786 ... ng-pymupdf