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

Компьютерное

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

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

Установка

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

sudo apt install poppler-utils

Fedora:

sudo dnf install poppler-utils

openSUSE:

sudo zypper install poppler-tools

Arch Linux:

sudo pacman -S poppler

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

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

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

pdftotext -layout input.pdf output.txt

Где:

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

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

pdftotext -layout -f M -l N input.pdf

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

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

pdftotext -layout -eol unix input.pdf

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

pdftotext -layout nopgbrk input.pdf

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

for file in *.pdf; do pdftotext -layout "$file"; done

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

Оцените статью
( 1 оценка, среднее 5 из 5 )
Блог админа