Как конвертировать PDF в редактируемый текст через командную строку в Linux
В этой инструкции показано, как с помощью утилиты pdftotext (пакет poppler-utils) быстро превратить PDF в редактируемый текст из командной строки в Linux. Приведены команды для базовой конвертации, сохранения макета, ограничения по страницам, работы с паролями и советы на случай сканов и ошибок.

Зачем конвертировать PDF в текст? Причины разные: нужно править старый документ, извлечь содержимое для поиска, импортировать в систему управления версиями или подготовить текст для автоматической обработки. В Linux для этого удобно использовать утилиту pdftotext, которая входит в пакет poppler-utils.
В этой статье вы найдёте: базовые команды, флаги, рекомендации по сохранению макета, работу с защищёнными PDF, способы, когда pdftotext не подходит, и краткую шпаргалку с командами.
Проверка и установка poppler-utils
Откройте терминал (обычно «Ctrl+Alt+T») и проверьте, установлен ли пакет:
dpkg -s poppler-utils
Если пакет не установлен, установите его через apt:
sudo apt-get update
sudo apt-get install poppler-utilsВведите пароль, когда система запросит, и нажмите Enter. Пакет poppler-utils содержит несколько утилит для работы с PDF: помимо pdftotext там есть инструменты для извлечения изображений, метаданных и прочего.

Базовая команда для конвертации PDF в текст
Самая простая команда преобразует весь PDF в текстовый файл:
pdftotext /home/lori/Documents/Sample.pdf /home/lori/Documents/Sample.txtЗамените пути и имена файлов на соответствующие в вашей системе. Если имя выходного файла не указано, pdftotext по умолчанию создаст файл с тем же базовым именем и расширением .txt (например, file.pdf → file.txt). Если в качестве выходного файла указать -, результат будет выведен в stdout (в терминал), а не записан в файл.
После выполнения вы сможете открыть получившийся .txt как обычный текстовый файл.

Сохранение макета документа
Иногда важно сохранить расположение заголовков, колонок, нумерацию страниц и т. п. Для этого используйте флаг -layout:
pdftotext -layout /home/lori/Documents/Sample.pdf /home/lori/Documents/Sample.txtФлаг -layout пытается повторить визуальное оформление исходного PDF в текстовом файле: колонки, отступы и переносы строк будут расположены максимально близко к исходнику. Это полезно для документов с таблицами или газетным форматированием, но не всегда идеально при сложной вёрстке.
Конвертация только нужных страниц
Чтобы преобразовать лишь часть документа, укажите страницы через флаги -f (first) и -l (last — строчная L):
pdftotext -f 5 -l 9 /home/lori/Documents/Sample.pdf /home/lori/Documents/Sample.txtЭто превратит в текст только страницы с 5 по 9 включительно.
Работа с защищёнными PDF
Если PDF защищён паролем владельца (owner password), используйте флаг -opw (первый символ — строчная буква «o», не цифра ноль):
pdftotext -opw 'password' /home/lori/Documents/Sample.pdf /home/lori/Documents/Sample.txtЕсли документ защищён пользовательским паролем (user password), используйте -upw:
pdftotext -upw 'password' /home/lori/Documents/Sample.pdf /home/lori/Documents/Sample.txtОбязательно используйте одинарные кавычки в командной строке, чтобы избежать проблем с символами в пароле.
Концы строк (EOL)
Флаг -eol задаёт тип символа конца строки в выходном файле — полезно, если вы планируете открывать файл в другой ОС. Доступные значения: unix, dos, mac:
pdftotext -eol dos /home/lori/Documents/Sample.pdf /home/lori/Documents/Sample.txtЭто запишет окончания строк в формате CRLF, привычном для Windows.
Частые проблемы и когда pdftotext не подходит
- PDF — изображение (скан). pdftotext работает с текстовыми слоями PDF и не распознаёт текст на изображениях. В таких случаях нужна OCR (оптическое распознавание): рекомендуемые инструменты — ocrmypdf (создаёт PDF с текстовым слоем) или tesseract (извлекает текст из изображений).
- Сложная вёрстка и много колонок.
-layoutможет не восстановить идеальный порядок чтения. Иногда проще сохранить без-layoutи вручную обработать текст. - Кавычки и специальные символы могут некорректно отобразиться при несовпадении кодировок. pdftotext обычно выводит UTF-8, но убедитесь, что ваш редактор поддерживает UTF-8.
- Защищённые PDF с сильным шифрованием или DRM. pdftotext не сможет обойти DRM; потребуется легальный доступ к исходному контенту.
Альтернативные подходы
- GUI-инструменты: многие PDF-ридеры или офисные пакеты (LibreOffice Draw, Okular) позволяют сохранить или скопировать текст. Это удобно для разовых задач.
- OCR для сканов:
ocrmypdf input.pdf output.pdfдобавит текстовый слой к PDF;tesseract image.png out.txtизвлечёт текст из изображения. - Экспорт в HTML: иногда полезно конвертировать PDF в HTML, а затем извлечь текст, если нужен более гибкий парсинг.
Шпаргалка команд (cheat sheet)
# проверка пакета
dpkg -s poppler-utils
# установка
sudo apt-get update
sudo apt-get install poppler-utils
# конвертировать весь PDF в файл .txt
pdftotext /path/to/file.pdf /path/to/file.txt
# вывести результат в терминал
pdftotext /path/to/file.pdf -
# сохранить макет
pdftotext -layout /path/to/file.pdf /path/to/file.txt
# диапазон страниц
pdftotext -f 2 -l 4 /path/to/file.pdf /path/to/file.txt
# пароль владельца
pdftotext -opw 'ownerpass' /path/to/file.pdf /path/to/file.txt
# пароль пользователя
pdftotext -upw 'userpass' /path/to/file.pdf /path/to/file.txt
# указать окончания строк
pdftotext -eol unix /path/to/file.pdf /path/to/file.txt
# OCR (если PDF — скан)
ocrmypdf scanned.pdf output.pdf
# или извлечь текст напрямую из изображения
tesseract page.png output -l engПроверка качества и критерии приёмки
Перед тем как считать задачу выполненной, проверьте:
- Наличие всех заголовков и абзацев в логическом порядке.
- Отсутствие лишних переносов строк внутри абзацев (если это критично для дальнейшей обработки).
- Читаемые символы: нет искажённых букв, особенно в кириллице или специальных знаках.
- Для таблиц и колонок: данные читаются по строкам, а не перемешаны.
Если один или несколько критериев не соблюдены, попробуйте -layout, или выполните OCR для сканов.
Роль‑ориентированные чек‑листы
Обычный пользователь:
- Установил poppler-utils.
- Запустил базовую команду и открыл .txt в редакторе.
Системный администратор:
- Установил пакет на группу машин через конфигурационный менеджер (Ansible/Puppet).
- Проверил кодировку и права доступа к созданным файлам.
Разработчик/инженер данных:
- Автоматизировал конвертацию (скрипт/Bash) с обработкой ошибок.
- Добавил OCR-шаг для сканов и проверку качества (unit tests / проверка постусловий).
Краткий словарь
- pdftotext — утилита для извлечения текстового слоя из PDF-файла.
- OCR — оптическое распознавание символов, нужно для сканов.
- EOL — символ(ы) конца строки (unix/dos/mac).
Примеры распространённых сценариев и решения
Сценарий: PDF содержит таблицы, текст в столбцах перепутан. Решение: попробуйте
-layout, либо экспортируйте страницы в изображения и примените OCR с последующей пост‑обработкой таблиц.Сценарий: pdftotext возвращает пустой файл. Решение: убедитесь, что PDF содержит текстовый слой; если нет — примените OCR.
Сценарий: текст с неправильными кодировками. Решение: откройте файл в редакторе, поддерживающем UTF-8, или используйте iconv для перекодирования.
Где искать справку
Для подробной справки введите в терминале:
man pdftotextЭто откроет справочное руководство по всем флагам и подробным опциям.
Краткое резюме
pdftotext — быстрый и простой инструмент для преобразования PDF с текстовым слоем в .txt. Для сканов потребуется OCR; для сложной вёрстки — эксперимент с -layout и последующая ручная правка. Включённый в poppler-utils набор инструментов делает работу с PDF в Linux удобной и поддающейся автоматизации.
Важно: если вам нужно массово обрабатывать файлы, автоматизируйте процесс через скрипты и добавьте проверку качества после конвертации.

Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента