Python - PyPDF2 пропускает большой кусок текста. Любая альтернатива на Windows? - PullRequest
0 голосов
/ 29 апреля 2018

Я попытался проанализировать файл PDF с PyPDF2, но я извлекаю только около 10% текста. Для оставшихся 90% pyPDF2 возвращает только новые строки ... немного расстраивает.

Знали бы вы какие-нибудь альтернативы для Python, работающего в Windows? Я слышал о pdftotext, но, похоже, я не могу установить его, потому что мой компьютер не работает в Linux.

Есть идеи?

import PyPDF2

filename = 'Doc.pdf'
pdf_file = PyPDF2.PdfFileReader(open(filename, 'rb'))

print(pdf_file.getPage(0).extractText())

1 Ответ

0 голосов
/ 08 мая 2018

Попробуйте PyMuPDF. Следующий пример просто распечатывает найденный текст. Библиотека также позволяет вам определить положение текста, если это вам поможет.

#!python3.6
import json

import fitz  # http://pymupdf.readthedocs.io/en/latest/


pdf = fitz.open('2018-04-17-CP-Chiffre-d-affaires-T1-2018.pdf')
for page_index in range(pdf.pageCount):
    text = json.loads(pdf.getPageText(page_index, output='json'))
    for block in text['blocks']:
        if 'lines' not in block:
            # Skip blocks without text
            continue
        for line in block['lines']:
            for span in line['spans']:
                print(span['text'].encode('utf-8'))
pdf.close()
...