Я знаю, как использовать инструмент pdfminer.six pdf2txt.py в командной строке; однако у меня есть много файлов PDF для преобразования в txt файлы, и я не могу просто сделать это один за другим в командной строке. Я не нашел, как использовать этот инструмент в реальном скрипте python. Есть идеи?
Хорошей новостью является то, что вы можете использовать библиотеку PDFMiner для воссоздания любых атрибутов/команд, которые вы можете использовать с pdf2text в командной строке. Ниже приводится базовый пример:
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from io import BytesIO
def pdf_to_text(path):
manager = PDFResourceManager()
retstr = BytesIO()
layout = LAParams(all_texts=True)
device = TextConverter(manager, retstr, laparams=layout)
filepath = open(path, 'rb')
interpreter = PDFPageInterpreter(manager, device)
for page in PDFPage.get_pages(filepath, check_extractable=True):
interpreter.process_page(page)
text = retstr.getvalue()
filepath.close()
device.close()
retstr.close()
return text
if __name__ == "__main__":
text = pdf_to_text("yourfile.pdf")
print(text)
Если вам нужно указать номера страниц или пароли, это необязательные параметры в файле PDFPage.get_pages. Аналогично, если вам нужно внести изменения в макет, такие как тексты или размер маркера, существуют дополнительные атрибуты для инициализатора LAParams