Найти тему
SoftSAR

Python чтение pdf файлов

Оглавление

В предыдущей статье "Python работа с файлами PDF" мы рассмотрели основные библиотеки для работы с PDF (чтения, извлечения данных и создания PDF файлов). В данной статье мы рассмотрим методы чтение и извлечение данных из файлов PDF средствами Python.

Для извлечения данных из файла PDF используют следующие библиотеки:

  • PyPDF2;
  • Tabula-py;
  • Pdfminer.six;

PyPDF2

Устанавливаем библиотеку через командную строку:

pip install PyPDF2

Извлечение метаданных PDF:

В метаданных содержатся сведения о количестве страниц, сведения об авторе, авторах, название приложения в котором создан файл, дата создания.

Импортируем модуль PdfFileReader из библиотеки PyPDF2. Запрашиваем у пользователя путь к файлу. С помощью оператора with открываем файл в двоичном режиме. Оператор with гарантирует закрытие файла автоматически даже при возникновении ошибки, подробнее о работе с файлами можно прочитать в статье: "Python работа с файлами". Объект PdfFileReader() используется для чтения PDF файла. Свойство documentInfo является словарем содержащим сведения о файле.

Результат выполнения скрипта:

Number of Pages in PDF File is 1
PDF Metadata is {'/Title': 'Test', '/Author': 'SoftSAR', '/CreationDate': "D:20220611211027+04'00'", '/Producer': 'Microsoft PowerPoint', '/Creator': 'Microsoft PowerPoint'}
PDF File Author is : SoftSAR
PDF File Creator is Microsoft PowerPoint

Извлечение текста страниц PDF.

Метод getPage() возвращает объект страницы, для извлечения текста со страницы необходимо вызвать метод extractText().

Tabula-py

Устанавливаем библиотеку через командную строку:

pip install tabula-py

Tabula-py это оболочка для tabula-java, которая переводит команды Python в команды Java. Соответственно для работы с Tabula-py необходимо скачать и установить java. Найдите место, где установлена ​​Java, в каталоге найдите папку bin и скопируйте путь до нее. Добавьте скопированный путь в переменные среды.

Импортируем библиотеку tabula, Запрашиваем у пользователя путь к файлу. С помощью оператора with открываем файл в двоичном режиме. С помощью метода read_pdf() модуля tabula считываем таблицы из PDF файла.

Библиотека позволяет конвертировать таблицы из pdf файла в CSV файл. Конвертация файла осуществляется методом convert_into()

Pdfminer.six

Устанавливаем библиотеку через командную строку:

pip install pdfminer.six

Извлекаем весь текст из PDF документа. Импортируем необходимые модули из библиотеки pdfminer, Запрашиваем у пользователя путь к файлу. Задаем кодировку файла, инициализируем интерпретатор страницы, с помощью метода LAParams() анализируем параметры, С помощью оператора with открываем файл в двоичном режиме. Циклом обходим все страницы извлекаем текст и выводим на печать.

Извлечение текста постранично. Извлекать текст из многостраничного документа постранично не всегда целесообразно, метод чаще применяется для извлечения текста с определенной страницы (диапазона страниц).

В данной статье мы рассмотрели, как извлекать данные из PDF файлов с помощью основных Python библиотек для чтения файлов PDF. Мы научились извлекать текст из PDF файла целиком и постранично, а также научились извлекать таблицы из PDF файла и конвертировать их в CSV формат. У каждой библиотеки есть своя область применения, свои преимущества и недостатки. Некоторые библиотеки предназначены только для извлечения текста, картинок или таблиц. При выборе библиотеки необходимо учитывать особенности решаемой задачи.

С уважением, Карян Армен.
Занимаюсь профессиональной разработкой прикладных программ на Python.
email SoftSAR@yandex.ru
Telegram @SoftSar_am
Наука
7 млн интересуются