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

Пакетное преобразование PDF в файлы JPG

Снова про Nautilus (Наутилус), то есть про файловый менеджер, который постоянно используется в Ubuntu. И сегодня практический пример, как использовать Nautilus для навигации по папкам и файлам, преобразуя файлы PDF в JPG, причём делая это пачками (папками). На лавры элегантности решения не претендую, потому как делал, что мог и для себя, а по ходу получилось довольно простое решение, посему делюсь.

Условие задачи

  • В отдельно взятой папке размещены файлы формата PDF (вперемешку ещё с чем-то).
  • PDF как правило много-страничные.
  • Требуется конвертировать каждый PDF в несколько JPG (каждую страничку в 1 файл).
  • JPG именовать как PDF, но и пронумеровать каждый afqk-лист последовательно, вот так:
    *-1.jpg, *-2.jpg … *-n.jpg

Решение в картинках

Открываем Nautilus и правой кнопкой мыши по любой папке вызываем контекстное меню, и открываем папку сценариев, см.рис.ниже.

Создайте свою папку для размещения своих скриптов (возможно вы их будете придумывать с сегодняшнего дня :-), см.рис.ниже.

Создайте текстовой файл, но с расширением .sh (хотя это, ровным счётом, не имеет никакого значения какое расширение, а только лишь, чтобы вы глазами видели и понимали, что это скрипт), см.рис.ниже.

Можно сразу этот скрипт сделать исполняемым, для чего правой кнопкой мыши откройте контекстное меню и выберите “Свойства” этого файла. Поставьте галку “Разрешить выполнение…”, см.рис.ниже.

Ах да, обязательно в этот файл впишите код :-), см.рис.ниже.

Пакетное преобразование PDF в файлы JPG

КОД СКРИПТА:

#!/bin/sh
# Nautilus Script to convert all PDF file to JPG
# V.1.1
DIRECTORY="$1"
for file in "${1}"/*.pdf
  do
    pdftoppm -f 0 -jpeg -r 200 "$file" "${file%\.pdf}"
  done 
exit 0

После сохранения у вас будет вот такое контекстное меню с командой для преобразования в выбранной папке всех PDF-файлов в постраничные JPG-файлы, см.рис.ниже.

Вуаля!

Вдруг не работает, то попробуйте установить, хотя скорее это уже у вас есть:

sudo apt install pdftoppm

Если у вас есть какие-то другие реализации или идеи, то пожалуйста расскажите об этом в комментах ниже.