У меня была похожая проблема, я, честно говоря, не смог полностью ее решить, скорее, я взял соответствующий html и обработал его с BeautifulSoup. Тем не менее, я получил более близкий подход, чем модули python, я использовал pdftotext.exe из poppler (ссылка внизу), чтобы прочитать файл pdf, и он работал просто отлично, кроме того факта, что он не мог различить текстовые столбцы , Поскольку это не модуль Python, я использовал os.system для вызова командной строки в файле .exe.
def call_poppler(input_pdf, input_path):
"""
Call poppler to generate a txt file
"""
command_row = input_path + " " + input_pdf
os.system(command_row)
txt_name = input_pdf[0:-4] + ".txt"
processed_paper = open_txt(txt_name)
return processed_paper
def open_txt(input_txt_name):
"""
Open and generate a python object out of the
txt attained with poppler
"""
opened_file = open(input_txt_name,"rb").readlines()
output_file = []
for row in opened_file:
row = row.decode("utf-8").strip()
output_file.append(row)
return output_file
Это возвращает вам обработанный файл ".txt", который вы можете затем обработать, как хотите, и переписать в виде PDF с некоторым модулем, таким как pypdf, извините, если это был не тот ответ, который вы хотели, но файлы PDF довольно сложны обрабатывать в Python, так как они не текстовые файлы. Не забудьте указать путь к исполняемому файлу.
Вы можете получить попплер здесь: https://poppler.freedesktop.org/