5

У меня есть 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 (из командной строки)?

2 ответа2

3

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

  1. Скажите Ghostscript использовать выходное измерение 800 на 600 пикселей (пикселей).
  2. Скажите Ghostscript использовать разрешение 300 точек на дюйм (точек на дюйм).
  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 использует 720dpi).

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

0

Попробуйте ImageMagick. Я верю, что вы хотите команду:

$ convert -density 400 my.pdf my.jpeg

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .