PyPDF2 и PyPDF4 не удается извлечь текст из PDF

#python #pdf #pypdf2

Вопрос:

 import PyPDF4 as p2 
pdffile = open("XXXX.pdf","rb")
pdfread=p2.PdfFileReader(pdffile)
print(pdfread.getNumPages())
pageinfo=pdfread.getPage(0)
print(pageinfo.extractText())
 

При выполнении вышеописанного 4-я строка кода успешно возвращает правильное значение, т. е. количество страниц в PDF, однако 6-я строка (извлечение PDF) дает пустые данные длиной в одну страницу. Я пробовал использовать PyPDF2 и PyPDF4 и запустил код как в терминале Python, так и в сублиметексте, и в обоих случаях я получил пустую страницу вместо фактического текста.

Комментарии:

1. PDF — это налоговая декларация, полностью в текстовом формате. Никаких изображений вообще.

2. В качестве альтернативы они могли бы добавить текст в форме, обычно не извлекаемой средствами извлечения текста. Таким образом, действительно, pdf-файл необходим для анализа.

3. хорошо, но я смог извлечь весь текст в powershell, используя itextsharp для одного и того же PDF-файла. В любом случае, поскольку это налоговые декларации, я не могу поделиться точными копиями, но я найду общую налоговую декларацию в Интернете. webtel.in/Image/Form GSTR_3B_New.pdf это ссылка для PDF-файла.

4. «но я смог извлечь весь текст в powershell, используя itextsharp для того же самого PDF» — ах, это интересная информация, которую вы должны были предоставить в исходном тексте вопроса. Обычное извлечение текста с помощью itext действительно не делает ничего особенного, оно просто пересекает содержимое страницы и объекты Xobject, созданные оттуда. Кроме того, он использует только кодировку или кодировку / ROS для сопоставления с Юникодом, без специальной информации, например, из встроенного файла шрифтов. Это то, что должен делать любой текстовый экстрактор.

5. Если вы используете python3 и выше, возможно, вы можете рассмотреть PDFMiner.six pdfminersix.readthedocs.io/en/latest