Получение N изображений JPEG из N-Pages PDF

Получение N изображений JPEG из N-Pages PDF

У меня есть PDF, состоящий из N страниц. Я хочу преобразовать этот PDF в N изображений jpeg (через командную строку, без PHP, Java или других языков программирования).

Я пытаюсь сделать это с помощью GHOSTSCRIPT, но вывод, который мне предоставляет GS, никогда не соответствует тому, что я ищу.

Пример:

gs \
  -sDEVICE=jpeg \
  -dNOCACHE \
  -dDEVICEHEIGHTPOINTS=72 -dDEVICEWIDTHPOINTS=72 \
  -r300 \
  -g800x600 \
  -dFIXEDMEDIA \
  -dPDFFitPage \
  -sOutputFile=output/%d.jpg \
   mypdf.pdf 

создает N изображений JPEG с разрешением 800x600, но создается впечатление, что страница PDF обрезана и не помещается.

Как можно просто получить N изображений JPEG из N-страничного PDF-файла (из командной строки)?

решение1

Используемая командная строка alesdario выполняет следующие действия:

  1. Укажите Ghostscript использовать выходной размер 800 на 600 пикселей.
  2. Укажите Ghostscript, что нужно использовать разрешение 300 dpi (точек на дюйм).
  3. Сообщите Ghostscript, что нужно использовать выходное измерение в 72 точки устройства.

Все три не могут работать одновременно, потому что если два из них будут работать вместе, они будут противоречить третьему.

При разрешении 300 точек на дюйм холст размером 800x600 будет иметь физический размер 2,33 x 2 дюйма (дюйма) — что, скорее всего, намного меньше исходного размера страницы PDF-файла.

К«просто получить N изображений JPEG из N-страничного PDF-файла (из командной строки)»используйте эту команду:

 gs \
   -sDEVICE=jpeg \
   -o output/%d.jpg \
    mypdf.pdf

Это самый простой вызов, он ничего не обрезает и использует настройки Ghostscript по умолчанию для:

  • разрешение изображения: 72 dpi для вывода в формате JPEG
  • Размер выходных изображений: соответствует размеру страницы PDF (однако Ghostscript предполагает, что PDF использует разрешение 720 точек на дюйм).

Чтобы получить N изображений JPEG из N-страничного PDF-файлас предопределенным разрешением и предопределенным размером изображения, вам нужно выполнить некоторые вычисления самостоятельно и установить значения -rи -gсоответственно. Например, вам может понадобиться 200 точек на дюйм для вашего JPEG (из размеров страницы PDF, которые были ISO A4 [595x842 pt]): это означает, что вам нужно добавить -r200 -g1652x2338в командную строку, если вы хотите избежать обрезки... Это заставит Ghostscriptресэмплвсе страницы и содержащиеся на них объекты к новому разрешению.

решение2

ПытатьсяImageMagick. Я полагаю, что нужная вам команда:

$ convert -density 400 my.pdf my.jpeg

Связанный контент