Гид по технологиям

Как конвертировать PDF в текст на Linux

6 min read Linux Обновлено 18 Dec 2025
Конвертация PDF в текст на Linux
Конвертация PDF в текст на Linux

a laptop, tablet, and a cup of coffee

В отличие от текстового файла, PDF нельзя просто открыть и редактировать как plain‑text. Часто PDF генерируют из текста, но иногда требуется обратная операция — извлечь текст из PDF. На Linux это удобно делать из терминала или графически через приложения.

Ниже — практическое руководство: установка инструментов, базовые и продвинутые опции pdftotext, работа с защищёнными файлами, альтернативы (OCR, LibreOffice, онлайн‑сервисы), проверка качества результата и оперативные сценарии для администраторов и контент‑менеджеров.

Быстрый обзор инструментов

  • pdftotext (часть poppler-utils) — надёжный командный инструмент для извлечения текста.
  • Calibre — графическая утилита для конвертации электронных книг и документов, подходит для пользователей, предпочитающих GUI.
  • Tesseract — OCR‑движок для распознавания текста в сканированных PDF (требует предварительного извлечения изображений или использования pdftoppm).
  • LibreOffice — может открывать и конвертировать многие PDF, особенно если требуется редактирование.

Важно: pdftotext извлекает текст из PDF с цифровым слоем. Для отсканированных страниц требуется OCR.

Установка poppler (pdftotext)

Утилита pdftotext входит в пакет poppler-utils или аналогичные пакеты в разных дистрибутивах. Установите её так:

Ubuntu / Debian:

sudo apt update
sudo apt install poppler-utils

Arch Linux:

sudo pacman -S poppler

RHEL / CentOS / Fedora:

sudo dnf install poppler-utils
# либо
sudo yum install poppler-utils

После установки команда pdftotext доступна из любого терминала.

Базовая команда: конвертация целого PDF

Синтаксис:

pdftotext [опции] pdffile textfile

Пример — конвертировать lorem-ipsum.pdf в text.txt:

pdftotext lorem-ipsum.pdf text.txt

Если вы не указали выходной файл, pdftotext создаст файл с тем же именем и расширением .txt (lorem-ipsum.txt).

convert pdf file to text in linux

Полезные флаги pdftotext

  • -f N — начать с страницы N.
  • -l N — закончить на странице N.
  • -layout — сохранить базовое расположение текста (столбцы, переносы).
  • -raw — попытаться извлечь «сырые» символы без переразметки.
  • -nopgbrk — не вставлять разрыв страницы между страницами вывода.
  • -enc encoding — задать кодировку выходного файла, часто “UTF-8”.
  • -nodiag — игнорировать диагональные штампы/выровнять текст при некоторых типах разметки.
  • -opw password / -upw password — пароли владельца/пользователя для защищённых PDF.

Примеры:

Сохранить макет (колонки):

pdftotext -layout lorem-ipsum.pdf output.txt

Извлечь страницы 1–5:

pdftotext -f 1 -l 5 lorem-ipsum.pdf output.txt

Только первая страница:

pdftotext -f 1 -l 1 lorem-ipsum.pdf output.txt

Игнорировать диагональные штампы:

pdftotext -nodiag lorem-ipsum.pdf cleaned.txt

Поменять кодировку на UTF‑8 (если надо):

pdftotext -enc UTF-8 lorem-ipsum.pdf output.txt

Пароль‑защищённый PDF (user/owner):

pdftotext -upw password lorem-ipsum.pdf output.txt
pdftotext -opw password lorem-ipsum.pdf output.txt

Комбинация флагов (страницы 1–3 + пароль):

pdftotext -f 1 -l 3 -upw password lorem-ipsum.pdf output.txt

Когда pdftotext не подходит и что делать

  • Если PDF — отсканированные изображения, pdftotext вернёт мало чего полезного. Решение: OCR с Tesseract.
  • Если результат содержит «мусор» или неправильную кодировку — попробовать -enc UTF-8 или -raw/-layout.
  • Для сложных макетов (таблицы) pdftotext может сломать формат; для таблиц стоит использовать специализированные инструменты (Tabula, Camelot) или экспорт через LibreOffice.

Пример: OCR‑цепочка для сканов (pdf -> изображения -> tesseract):

# извлечь страницы в изображения
pdftoppm scanned.pdf page -png
# распознать каждую страницу в текст
for img in page-*.png; do tesseract "$img" "${img%.*}" -l rus+eng txt; done
# затем объединить файлы .txt в один
cat page-*.txt > scanned.txt

Графический способ — Calibre

Если вы предпочитаете GUI, используйте Calibre. Он поддерживает импорт PDF и экспорт в TXT.

Установка:

Ubuntu / Debian:

sudo apt install calibre

Arch Linux:

sudo pacman -S calibre

RHEL / CentOS / Fedora:

sudo dnf install calibre
# либо
sudo yum install calibre

Запуск:

calibre

Как конвертировать в Calibre:

  1. Нажмите “Add Books” и выберите PDF.

adding books in calibre linux

  1. Выделите загруженный файл в центральной панели.

  2. Нажмите “Convert Books”.

converting pdf files to text files

  1. В выпадающем списке “Output format” выберите “TXT”.

selecting pdf files to convert

  1. Нажмите “OK” — конвертация начнётся. Статус задач видно внизу‑справа (Jobs).

calibre in linux

checking the status of jobs calibre

Calibre удобен для единичных файлов и когда нужен GUI‑контролируемый экспорт. Для пакетной автоматизации предпочтительнее pdftotext.

Пакетная обработка (скрипты)

Быстрая команда для конвертации всех PDF в текущей папке:

for f in *.pdf; do
  pdftotext "$f" "${f%.pdf}.txt"
done

Если хочется пропускать уже существующие .txt:

for f in *.pdf; do
  out="${f%.pdf}.txt"
  [ -f "$out" ] && continue
  pdftotext "$f" "$out"
done

Сценарий для сервера: логировать ошибки и сохранять кодировку UTF‑8.

mkdir -p logs
for f in *.pdf; do
  out="/var/converted/${f%.pdf}.txt"
  pdftotext -enc UTF-8 "$f" "$out" 2>>logs/convert_errors.log || echo "Ошибка: $f" >> logs/failed.log
done

Проверка качества и критерии приёмки

Критерии приёмки текстового файла после конвертации:

  • Текст читаем и не содержит последовательных неправильных символов в >5% строк.
  • Заголовки и списки распознаются логически (не все заголовки обязаны сохранить формат, но текст должен быть последовательным).
  • Для документов с таблицами — ключевые данные сохраняются в одном или нескольких столбцах, либо есть заметка о необходимости ручной проверки.
  • Для сканов — точность OCR удовлетворяет требованиям (обычно >90% по выборочной проверке).

Проверку можно автоматизировать простым скриптом, который считает количество пустых строк, символов замены и длину строк.

Рекомендации по улучшению результата

  • Попробуйте -layout, если текст сильно смещается при простой конвертации.
  • Для таблиц используйте экспортеры CSV из LibreOffice или специализированные библиотеки (Tabula, Camelot).
  • Для многоязычных документов указывайте правильную кодировку и, при OCR, набор языков (tesseract -l rus+eng).
  • Если встречается шрифт с нестандартной кодировкой — экспортируйте через LibreOffice, а затем снова сохраните в TXT.

Роли и чек‑листы

Для системного администратора:

  • Установить poppler-utils и tesseract (если нужно OCR).
  • Настроить каталог для результатов и ротацию логов.
  • Настроить cron/сервис для пакетной обработки.

Для контент‑менеджера / автора:

  • Проверить финальный .txt на семантические ошибки.
  • Если важен формат — экспортировать через LibreOffice и вручную корректировать.

Для разработчика (интеграция в пайплайн):

  • Пакетировать команду в контейнер/CI шаг.
  • Обрабатывать ошибки и уведомлять через лог/почту.

Альтернативные подходы и когда их выбирать

  • LibreOffice: когда нужен ручной контроль и редактирование после открытия PDF.
  • OCR (Tesseract): когда PDF — скан или изображение.
  • Онлайн‑сервисы: удобно, но не используйте для чувствительных данных.
  • Библиотеки для разработчиков (pdfminer.six, PyPDF2): если нужна более тонкая программная обработка и парсинг.

Мини‑методология: быстрый рабочий процесс

  1. Оценить тип PDF: цифровой слой или скан.
  2. Если цифровой — использовать pdftotext с -layout и -enc UTF-8. Если скан — OCR.
  3. Запустить тестовую конвертацию 1–3 страниц и проверить качество.
  4. Подключить пакетную обработку, добавить логирование и критерии приёмки.
  5. При необходимости провести пост‑обработку (удаление лишних переносов, нормализация кодировки).

Шпаргалка (cheat sheet)

  • Установка: sudo apt install poppler-utils
  • Конвертировать все: pdftotext file.pdf
  • Страницы: pdftotext -f 1 -l 3 file.pdf out.txt
  • Сохранить макет: pdftotext -layout file.pdf out.txt
  • Пароль: pdftotext -upw password file.pdf out.txt
  • OCR: pdftoppm file.pdf page -png && tesseract page-1.png page-1 -l rus

FAQ

Как извлечь текст из сканированного PDF?

Используйте OCR: сначала преобразуйте страницы в изображения (pdftoppm), затем распознайте их с помощью Tesseract (tesseract image.png output -l rus+eng).

Можно ли автоматически конвертировать тысячи PDF?

Да. Используйте пакетные скрипты и механизмы очередей. Следите за логами и проверяйте выборочные файлы по критериям приёмки.

Безопасно ли использовать онлайн‑сервисы для конвертации?

Не рекомендуется для конфиденциальных документов. Для таких случаев используйте локальные инструменты (pdftotext, tesseract, LibreOffice).

Краткое резюме

pdftotext — основной инструмент для быстрой и надёжной конвертации PDF с цифровым текстовым слоем. Для сканов требуется OCR, а для сложных макетов — специализированные инструменты. Автоматизируйте пакетную обработку скриптами и включайте проверку качества по заранее определённым критериям.

Факт‑бокс:

  • pdftotext — часть набора Poppler; подходит для большинства цифровых PDF.
  • Calibre удобно использовать при работе через GUI.
  • Для сканов — Tesseract + предварительное извлечение изображений.

Глоссарий (1‑строчно):

  • OCR — оптическое распознавание текста со сканов и изображений.

Важное: для чувствительных документов избегайте облачных конвертеров и тестируйте автоматическую обработку на контрольных примерах.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как поставить пароль на документ Office и PDF
Безопасность

Как поставить пароль на документ Office и PDF

Ресурсы по интернет‑безопасности для детей
Образование

Ресурсы по интернет‑безопасности для детей

Создать и безопасно использовать RAM-диск в Linux
Linux

Создать и безопасно использовать RAM-диск в Linux

Как обновлять приложения на Mac — полное руководство
macOS

Как обновлять приложения на Mac — полное руководство

Moment.js в React — форматирование, парсинг и манипуляции
Frontend

Moment.js в React — форматирование, парсинг и манипуляции

Средний клик на трекпаде Mac — как включить
macOS

Средний клик на трекпаде Mac — как включить