В данной статье мы рассмотрим работу с файлами PDF средствами Python. Мы изучим, основные инструменты: библиотеки и модули для работы с PDF файлами. Это статья начало серии статей, посвященных работе с PDF файлами средствами Python. В первой части, мы рассмотрим, основные Python библиотеки для работы с PDF файлами. Вторая часть будет посвящена работе с существующими файлами, чтение файлов, извлечение нужной информации, картинок из файла. Третья часть будет рассматривать вопросы создания PDF файлов.
PyPDF2
PyPDF2 бесплатная библиотека с открытым исходным кодом. Библиотека предназначена для извлечения информации и содержимого из PDF документов, разделение, объединение, обрезка и преобразование страниц PDF файлов. Модуль позволяет добавлять пользовательские данные, параметры просмотра и пароли, а также может извлекать метаданные и изображения.
PyPDF2 предназначен для работы с уже существующими PDF файлами, но данная библиотека не может создавать новые файлы.
Установка библиотеки:
pip install PyPDF2
Tabula-py
Модуль представляет собой оболочку tabula, которая позволяет извлекать таблицы из PDF файлов. Модуль позволяет читать таблицы из PDF файла и преобразовывать их в DataFrame pandas. Библиотека также позволяет конвертировать файл PDF в файл CSV, TSV или JSON.
Установка библиотеки:
pip install tabula-py
PyFPDF
PyFPDF библиотека для генерации PDF-документов средствами Python. По сравнению с другими библиотеками PDF, PyFPDF прост в освоении, мал и универсален, обладает расширенными возможностями. Библиотека адаптирована на самые распространенные типы документов (нет необходимости использовать механизм компоновки страниц, таблицы стилей, шаблоны), дает полный контроль над сгенерированным PDF документом.
Установка библиотеки:
pip install fpdf
Fpdf2
Это библиотека является преемником PyFPDF. По сравнению с другими библиотеками, fpdf2 является простым в использовании, быстрым и универсальным, с расширенными возможностями. Библиотека развивается и обновляется.
Основные характеристики библиотеки:
- Поддержка Unicode (UTF-8) поддерживает центрально-европейский, кириллический, греческий, балтийский, тайский, китайский, японский, корейский, хинди и почти любой другой язык;
- Поддержка внутренних и внешних ссылок;
- Встраивание изображений, включая прозрачность и альфа-канал, с помощью Pillow;
- Базовое преобразование из HTML в PDF;
- Система шаблонов для пакетного создания PDF-файлов;
- Содержание и план документа;
- Аннотации, включая выделение текста;
- и др.
Установка библиотеки:
pip install fpdf2
Pdfminer.six
Pdfminer.six библиотека оригинального PDFMiner, поддерживаемая сообществом. Предназначен для извлечения информации из PDF документов. Библиотека фокусируется на получении и анализе текстовых данных, извлекая текст со страницы непосредственно из исходного кода PDF. Модуль можно использовать для получения точного местоположения, шрифта или цвета текста на странице.
Библиотека позволяет:
- Разбирать, анализировать и конвертировать PDF-документы;
- Поддерживает различные типы шрифтов;
- Позволяет извлекать изображения;
- Поддерживает извлечение интерактивных форм AcroForm;
- Позволяет извлекать оглавление;
- и др.
Установка библиотеки:
pip install pdfminer.six
Pdfrw
Pdfrw библиотека Python, предназначенная для чтения и записи PDF-файлов. Библиотека точно воспроизводит векторные форматы без растеризации. Философия библиотеки заключается в предоставлении интуитивно понятных функции для чтения, обработки и записи PDF-файлов. Ключевой концепцией, поддерживаемой библиотекой, является использование Form XObjects, которые позволяют легко вставлять части одного PDF-файла в другой.
Библиотека позволяет:
- Извлекать определенные типов информации из PDF-файлов: текст, картинки, метаданные и др;
- Разделять PDF-файлы;
- Объединять PDF-файлы;
- Вращать страницы PDF-файлов;
- Создавать и накладывать водяные знаки;
- Масштабировать страницу;
- и др.
Установка библиотеки:
pip install pdfrw
В данной статье мы рассмотрели основные Python библиотеки для работы с файлами PDF. У каждой библиотеки есть своя область применения, свои преимущества и недостатки. Некоторые библиотеки предназначены только для чтения или записи информации, извлечения табличных данных, другие библиотеки широкого применения с их помощью можно как читать, так и создавать новые PDF-файлы, редактировать существующие PDF-файлы. При выборе библиотеки необходимо учитывать особенности решаемой задачи.
С уважением, Карян Армен.
Занимаюсь профессиональной разработкой прикладных программ на Python.
email SoftSAR@yandex.ru
Telegram @SoftSar_am