Pdf2txt - эквивалент в питоне

Я пытаюсь извлечь пригодные для использования тексты из PDF-файлов. Но некоторые PDF-файлы, такие как Вот этот, похоже, имеют определенный макет, потому что мой скрипт Python не может сохранять пробелы.

def convert_pdf_to_txt(path):
    rsrcmgr = PDFResourceManager()
    retstr = StringIO()
    codec = 'utf-8'
    laparams = LAParams()
    device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
    fp = open(path, 'rb')
    interpreter = PDFPageInterpreter(rsrcmgr, device)
    password = ""
    caching = True
    pagenos=set()

    for page in PDFPage.get_pages(fp, pagenos, password=password, caching=caching, check_extractable=True):
        interpreter.process_page(page)

    text = retstr.getvalue()

    fp.close()
    device.close()
    retstr.close()
    return text

print(convert_pdf_to_txt("1002459.pdf"))

Результат :

- 1 -

Combininglearningandreasoning:newchallengesforknowledgegraphsFrankvanHarmelen∗∗DptofComputerScience,VrijeUniversite...

Поэтому я попробовал с pdf2txt.py в команде. Тот же результат. Но я нашел вариант -A, который дает мне ожидаемый результат:

- 1 -

Combining learning and reasoning: new challenges for

knowledge graphs

Frank van Harmelen∗

Могу ли я получить тот же результат с моим скриптом Python?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
250
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Ты сможешь; просто скопируйте то, что делает -A. По сути, проблемный PDF-файл не «печатает» пробелы, а только слова, и анализ макета делает вывод, что из пробелов должны быть пробелы. pdf2txt активирует это, установив laparams.all_texts = True.

Идеально. Спасибо

Romain B 17.04.2019 11:11

Ну, вы можете сделать даже в Python Можете проверить код по приведенной ниже ссылке, он сделан на питоне.

https://github.com/baruchel/txt2pdf

Привет Анкит, добро пожаловать в StackOverflow! Довольно неясно, что вы хотите сказать, можете ли вы уточнить, что вы имеете в виду и как предоставленная ссылка помогает ответить на вопрос?

DBX12 17.04.2019 11:25

Другие вопросы по теме