Как конвертировать PDF в текст на Linux
В отличие от простого текстового файла, PDF нельзя редактировать напрямую как текст. Существуют разные способы создавать PDF из текста, но обратная задача — получить текст из PDF — вызывает больше вопросов. На Linux это можно сделать быстро прямо из терминала или с помощью графических приложений. В этой статье показаны проверенные методы конвертации PDF в текст, шаг за шагом.
Установка Poppler и pdftotext
Poppler — это библиотека для рендеринга PDF и набора утилит для работы с PDF, в том числе pdftotext. В большинстве дистрибутивов poppler-utils нужно установить вручную через менеджер пакетов.
На Ubuntu и Debian:
sudo apt install poppler-utilsНа Arch Linux:
sudo pacman -S popplerНа CentOS, Fedora и RHEL-подобных дистрибутивах:
sudo dnf install poppler-utils
sudo yum install poppler-utilsПосле установки утилиты pdftotext вы сможете конвертировать PDF в обычные текстовые файлы из терминала.
Конвертация всего PDF в текст
Базовый синтаксис pdftotext:
pdftotext [options] pdffile textfileЗдесь pdffile — путь к PDF (абсолютный или относительно текущей папки), textfile — имя выходного текстового файла.
Пример: конвертировать lorem-ipsum.pdf в текстовый файл:
pdftotext lorem-ipsum.pdf text.txtЕсли в PDF есть диаграммы, водяные знаки или невыравненный текст, можно исключить диагональные элементы из вывода с помощью флага -nodiag:
pdftotext -nodiag lorem-ipsum.pdf random.textКонвертация конкретного диапазона страниц
Чтобы обработать только определённые страницы, используйте флаги -f (first) и -l (last). Пример: страницы с 1 по 5:
pdftotext -f 1 -l 5 lorem-ipsum.pdf output.txtТолько первая страница:
pdftotext -f 1 -l 1 lorem-ipsum.pdf output.txtКонвертация защищённых PDF
pdftotext поддерживает конвертацию защищённых паролем PDF с помощью флагов -upw (user password) и -opw (owner password).
pdftotext -upw password lorem-ipsum.pdf output.txt
pdftotext -opw password lorem-ipsum.pdf output.txtЗамените password на реальный пароль документа. Можно комбинировать флаги, например, чтобы конвертировать страницы 1–3 защищённого PDF:
pdftotext -f 1 -l 3 -upw password lorem-ipsum.pdf output.txtВажное замечание: перед тем как запускать команды с паролями, убедитесь, что вы не раскрываете секреты в общедоступных логах или скриптах.
Связанная статья: Как конвертировать PDF в изображения на Linux
Когда pdftotext не подходит (и что делать)
pdftotext извлекает встроенный текст из PDF, поэтому он не может распознать текст, представленный как изображение (сканы, снимки). В таких случаях нужен OCR — оптическое распознавание текста.
Альтернативы и дополнения:
- Tesseract — популярный OCR-движок. Работает хорошо для сканов на многих языках.
- OCRmyPDF — обёртка, которая добавляет слой OCR прямо в PDF или экспортирует текст. Удобна для пакетной обработки.
- Комбинация конвертации страниц в изображения (например, с помощью pdftoppm из пакета poppler) и последующего запуска Tesseract.
Пример базового workflow для сканов:
- Экспорт страниц в PNG:
pdftoppm -png input.pdf page - Распознавание:
tesseract page-1.png output-1 -l rus+eng(укажите нужные языки)
Если PDF содержит сложную вёрстку (колонки, таблицы), pdftotext может вернуть поток символов в порядке, отличном от видимого. Для таких случаев пригодятся специальные парсеры PDF или ручная корректировка.
Графический способ: Calibre
Если вы предпочитаете GUI, используйте Calibre — приложение для управления и конвертации электронных книг. Оно поддерживает экспорт в TXT и удобный визуальный интерфейс.
Установка Calibre:
На Ubuntu и Debian:
sudo apt install calibreНа Arch Linux:
sudo pacman -S calibreНа RHEL-подобных дистрибутивах:
sudo dnf install calibre
sudo yum install calibreКак конвертировать PDF в текст через Calibre
Запустите Calibre через меню приложений или введите в терминале:
calibreДальше:
- Нажмите кнопку Add Books, чтобы добавить PDF в библиотеку.
- Найдите и выберите PDF-файл.
- Выделите файл в центральной панели и нажмите Convert Books.
- В выпадающем списке Output format выберите TXT.
- Нажмите OK — конвертация начнётся. Статус можно отслеживать через Jobs в правом нижнем углу окна.
Calibre хорошо подходит для одиночных файлов и удобен, когда нужна быстрая проверка результата в GUI.
Практические рекомендации и чек-лист
Краткий чек-лист перед конвертацией:
- Убедитесь, что PDF содержит «реальный» текст (попробуйте выделить текст в просмотрщике).
- Если PDF — скан, применяйте OCR (Tesseract, OCRmyPDF).
- Для пакетной обработки автоматизируйте pdftotext в скрипте bash или Makefile.
- Не храните пароли в скриптах в открытом виде; используйте менеджеры секретов.
- Проверьте результат на наличие ошибок разметки (колонки, переносы строк, таблицы).
Роль-based чек-лист (коротко):
- Для конечного пользователя: используйте pdftotext или Calibre, проверьте выходной TXT на читаемость.
- Для администратора: автоматизируйте конвертацию, добавьте логирование и проверку кодировок (UTF-8).
- Для разработчика: обрабатывайте edge-case’ы (сканы, нестандартные кодировки) и тестируйте pipeline.
Критерии приёмки
- Конвертация не должна терять алфавитные символы и основные разделы текста.
- Для PDF с реальным текстом pdftotext должен выдавать читаемый TXT без OCR.
- Для сканов — результат OCR должен иметь приемлемую точность распознавания для дальнейшей правки.
- Для автоматизированных скриптов — ошибки конвертации должны логироваться и возвращать ненулевой код выхода.
Тестовые случаи и приёмка
- Тест 1: обычный PDF с одним столбцом — ожидаемый результат: правильно выстроенные строки.
- Тест 2: PDF со столбцами — оценить порядок текста и, при необходимости, вручную исправить.
- Тест 3: отсканированный PDF — запуск OCR, оценка точности по глоссарию.
- Тест 4: защищённый PDF — проверка конвертации с -upw и -opw.
Ментальные модели и подсказки
- Подумайте о PDF как о контейнере: текст может быть «внутренним текстом» или «изображением». От этого зависит метод.
- pdftotext — быстрый и надёжный для «истинных» PDF. OCR — дорогой по времени, но единственный выбор для сканов.
- Всегда проверяйте кодировку выходного файла (предпочтительна UTF-8).
Безопасность и приватность
- Не храните пароли в открытых скриптах; используйте переменные окружения или менеджеры секретов.
- При обработке конфиденциальных документов лучше проводить конвертацию локально, а не отдавать файлы внешним сервисам.
Краткое резюме
pdftotext из набора poppler-utils — ваш быстрый инструмент для извлечения текста из PDF в Linux. Для сканов используйте OCR (Tesseract, OCRmyPDF). Calibre даёт удобный GUI для единичных файлов. Автоматизацию лучше строить на скриптах с обработкой ошибок и логированием.
Важно: если вам нужно извлечь структуру (таблицы, колонки) с высокой точностью, рассмотрите специализированные парсеры PDF и постобработку результатов.
Краткий список полезных команд (шпаргалка):
# Установка
sudo apt install poppler-utils
sudo apt install calibre
# Конвертация полного PDF
pdftotext file.pdf file.txt
# Диапазон страниц
pdftotext -f 1 -l 5 file.pdf output.txt
# Защищённый PDF
pdftotext -upw password file.pdf out.txt
# Экспорт в PNG и OCR
pdftoppm -png input.pdf page
tesseract page-1.png output-1 -l rus+eng1-line glossary:
- pdf: формат документа для обмена и печати.
- pdftotext: утилита для извлечения текста из PDF.
- OCR: оптическое распознавание текста (Tesseract — популярная реализация).
Конец статьи.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone