Файлы PDF не очень просто разбить на файлы изображений в большинстве программ, которые используются для открытия этих файлов. Тем не менее для этого существует несколько утилит командной строки. Эта статья расскажет, как в командной строке Linux преобразовать PDF в JPEG.
ImageMagick (convert)
Для конвертации PDF на отдельные файлы изображений начнём с утилиты ImageMagick.
Подробности по установке ImageMagick, в том числе какие зависимости необходимо установить для поддержки максимального количества форматов, смотрите в статье: Руководство по ImageMagick: установка, использование и решение проблем
Используйте convert следующим образом:
convert input.pdf output.jpg
Для хорошего качества используйте эти параметры
convert -density 300 -quality 100 in.pdf out.jpg
Если вы столкнулись с ошибками, то вам могут помочь статьи:
- Ошибка «convert: attempt to perform an operation not allowed by the security policy `PDF’» (РЕШЕНО)
- Ошибка «convert: attempt to perform an operation not allowed by the security policy `gs’» (РЕШЕНО)
pdftoppm (из пакета poppler)
В Debian, Linux Mint, Ubuntu, Kali Linux их производных вы можете установить этот пакет с помощью этой команды:
sudo apt install poppler-utils
В Arch Linux, Manjaro и их производных для установки выполните команду:
sudo pacman -S poppler
Формат команды следующий:
pdftoppm -jpeg -r 300 input.pdf output
В этой команде:
- -jpeg устанавливает формат выходного изображения в JPG,
- -r 300 устанавливает разрешение выходного изображения на 300 точек на дюйм,
- output будет префиксом для всех страниц изображений, которые будут пронумерованы и помещены в ваш текущий каталог, с которым вы работаете.
Однако, на мой взгляд, лучший способ - сначала использовать mkdir -p images для создания каталога "images", а затем установить для вывода значение images/pg, чтобы все выходные изображения с префиксом файла pg перед каждым из их номеров были аккуратно помещены в только что созданный каталог images.
Поэтому вот мои любимые команды:
Создаём файлы размером ~1 МБ на страницу. Вывод в формате .jpg с разрешением 300 точек на дюйм:
mkdir -p images pdftoppm -jpeg -r 300 mypdf.pdf images/pg
Создаём файлы размером ~2 МБ на страницу. Вывод в формате .jpg с максимальным качеством (наименьшее сжатие) и все ещё с разрешением 300 точек на дюйм:
mkdir -p images pdftoppm -jpeg -jpegopt quality=100 -r 300 mypdf.pdf images/pg
Если вам нужно большее разрешение, вы можете попробовать 600 DPI:
mkdir -p images pdftoppm -jpeg -r 600 mypdf.pdf images/pg
… или 1200 точек на дюйм:
mkdir -p images pdftoppm -jpeg -r 1200 mypdf.pdf images/pg
Для создания одного файла выполните:
pdftoppm -singlefile -jpeg -r 300 input.pdf output
vips (из пакета libvips)
В Debian, Linux Mint, Ubuntu, Kali Linux их производных вы можете установить этот пакет с помощью этой команды:
sudo apt install libvips-tools
В Arch Linux, Manjaro и их производных для установки выполните команду:
sudo pacman -S libvips
libvips может быстро конвертировать PDF → JPEG. Эта программа присутствует в стандартных репозиториях большинства дистрибутивов Linux, для macos можно использовать homebrew, а бинарный файл Windows можно загрузить с сайта libvips.
Это команда преобразует PDF в JPG с разрешением по умолчанию (72):
vips copy somefile.pdf somefile.jpg
Вы можете использовать параметр dpi, чтобы установить другое разрешение рендеринга, например:
vips copy somefile.pdf[dpi=600] somefile.jpg
Вы можете выбрать определённые страницы:
vips copy somefile.pdf[dpi=600,page=12] somefile.jpg
Или сделать рендеринг пяти страниц, начиная с третьей, следующим образом:
vips copy somefile.pdf[dpi=600,page=3,n=5] somefile.jpg
В документации для pdfload есть все опции.
Сравнение скоростей работы программы:
time -f %M:%e convert -density 300 r8.pdf[3] x.jpg 276220:2.17 time -f %M:%e pdftoppm -jpeg -r 300 -f 3 -l 3 r8.pdf x.jpg 91160:1.24 time -f %M:%e vips copy r8.pdf[page=3,dpi=300] x.jpg 149572:0.53
Таким образом, libvips примерно в 4 раза быстрее и требует вдвое меньше памяти, по крайней мере, в этом тесте.
Онлайн сервис конвертации PDF в JPG
Если вы пользователь Windows, либо вы не хотите устанавливать новые утилиты и разбираться с командной строкой для преобразования PDF в JPG, то вы можете разбить PDF файлы на отдельные изображения на странице Онлайн сервиса для конвертации PDF в JPG: https://suip.biz/ru/?act=convert-pdf-to-jpg
Данный онлайн сервис поддерживает как одностраничные, так и многостраничные файлы PDF. В случае преобразования многостраничного PDF документа файлы с картинками страниц будут для удобства помещены в архив, который можно скачать за один раз независимо от количества JPG файлов.
Смотрите также: Как конвертировать JPG в PDF
Связанные статьи:
- Как конвертировать JPG в PDF (100%)
- Ошибка «convert: delegate failed `'potrace' --svg --output '%o' '%i'' @ error/delegate.c/InvokeDelegate/1911» (РЕШЕНО) (82.9%)
- Какой программой открыть файлы .docbook (DocBook) (59.1%)
- Руководство по ImageMagick: установка, использование и решение проблем (58.6%)
- Ошибки при использовании magick (convert) из пакета ImageMagick и их устранение (58.6%)
- Как установить Microsoft Teams в Linux (RANDOM - 50%)