Как преобразовать PDF файл в текстовый

Решение вопроса вынесенного в заголовок достигается утилитой pdftotext. pdftotext — это утилита командной строки, которая преобразует PDF-файлы в обычный текст. Она имеет много опций, включая возможность указать диапазон страниц для преобразования, сохранить или нет исходную разметку текста, возможость задать окончания строк (unix, dos или mac) и даже умеет работать с PDF-файлами, защищенными паролем.

pdftotext является частью пакета poppler / poppler-utils / poppler-tools (в зависимости от используемого дистрибутива Linux). так что для получения утилиты вам потребуется установить весь пакет.

Установка

Debian, Ubuntu, Linux Mint и другие дистрибутивы Linux на основе Debian / Ubuntu:

Fedora:

openSUSE:

Arch Linux:

В других дистрибутивах Linux используйте менеджер пакетов для установки пакета poppler / poppler-utils.

Использование

Теперь, когда пакет установлен, вы можете преобразовать PDF-файл в обычный текст и сохранить его макет (я рекомендую использовать параметр -layout для сохранения исходной разметки, но вы можете попробовать и без него) с помощью:

Где:

  • input.pdf — путь до вашего PDF-файла,
  • output.txt — путь до файла где будет сохранен результат. Если выходной текстовый файл не указан, pdftotext будет называть файл с тем же именем, что и исходный файл PDF.
  • Опция —layout будет сохранять форматирование текста, даже если он изначально был сверстан в несколько колонок.

Что если вы хотите конвертировать в текст лишь диапазон страниц PDF, а не весь файл? Используйте указание диапазона для конвертирования через опции -f (номер начальной страницы для конвертирования) и -l (номер последней страницы для конвертирования), например:

Где: M — номер страницы начала конвертирования, N — номер страницы окончания конвертирования, input.pdf — имя файла для преобразования в текст.

Хотите указать какие символы конца строки Mac, DOS или Unix использовать в получаемом тексте? Вы можете указать это, используя функцию -eol, затем mac, dos или unix. Например. для получения файла с символами конца строки Unix:

Если вы не хотите вставлять разрывы страниц между страницами, добавьте опцию -nopgbrk:

Хотите конвертировать все файлы PDF внутри директории в текстовые файлы? pdftotext не поддерживает пакетное преобразование PDF в текст (и pdftotext * .pdf не работает), но вы можете это сделать при помощи цикла Bash:

Для получения дополнительных опций запустите man pdftotext и pdftotext —help.

Автор: Mirivlad

Скромный труженик консоли и окошек.