all in all linux

Конвертация pdf в jpeg-изображения на Ubuntu

Понадобилось вытащить картинки из PDF-файла. Будучи пользователем Ubuntu 15.10, начал искать решение. Наткнулся на команду convert кроссплатформенного редактора ImageMagick.

Для его установки под Ubuntu достаточно ввести следующую команду:

sudo apt-get install imagemagick

В итоге получилась такая команда для конвертации PDF-файла:

convert -alpha Off -density 300 $PDF_FILE -resize 700 ./$FOLDER/output.jpg

Разбор некоторых параметров команды (подробная документация по команде convert):

  • -alpha Off - отключаем прозрачность у генерируемых изображений. Изначально импортировал в PNG и не знаю, как будет работать команда без этого параметра с JPG;
  • -density 300 - разрешение, подобрал опытным путём;
  • -resize 700 - ширина изображений;
  • ./$FOLDER/output.jpg - итоговые файлы будут с именем output.jpg и порядковым номером перед расширением.

Далее занялся поиском консольного средства для оптимизации получившихся изображений. Остановился на команде jpegtran из пакета libjpeg-progs.

Для установки использовал команду:

sudo apt-get install libjpeg-progs

Документация по команде jpegtran.

Итоговая команда:

jpegtran -copy none -optimize -progressive -outfile $filename $filename

И всё это собрал в bash-скрипт, который привожу ниже:

#!/bin/bash
PDF_FILE=$1
FOLDER=$2
mkdir $FOLDER
convert -alpha Off -density 300 $PDF_FILE -resize 700 ./$FOLDER/output.jpg
for filename in ./$FOLDER/*.jpg; do
    echo $filename;
    jpegtran -copy none -optimize -progressive -outfile $filename $filename
    mv $filename ${filename//output-/}
done

Первым параметром передаётся путь к PDF-файлы, вторым — путь к директории, куда поместить картинки.

18.03.2016

Комментарии

linux & webdev
Лучшее в разделе