Получить предварительный просмотр PDF-файла в формате JPEG в Windows?

У меня есть кроссплатформенное приложение (Python), которому необходимо создать предварительный просмотр первой страницы PDF-файла в формате JPEG.

На Mac я создаю глотки . Есть ли что-то подобное простое, что я могу сделать в Windows?

Ответов (3)

Решение

ImageMagick в любом случае делегирует преобразование PDF-> растрового изображения в GhostScript, поэтому вот команду, которую вы можете использовать (она основана на фактической команде, указанной ps:alpha делегатом в ImageMagick, только что настроенной для использования JPEG в качестве вывода):

gs -q -dQUIET -dPARANOIDSAFER -dBATCH -dNOPAUSE -dNOPROMPT \
-dMaxBitmap=500000000 -dLastPage=1 -dAlignToPixels=0 -dGridFitTT=0 \
-sDEVICE=jpeg -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -r72x72 \
-sOutputFile=$OUTPUT -f$INPUT

где $OUTPUT и $INPUT - имена выходных и входных файлов. Установите 72x72 любое необходимое разрешение. (Очевидно, удалите обратную косую черту, если вы пишете всю команду как одну строку.)

Это хорошо по двум причинам:

  1. Вам больше не нужно устанавливать ImageMagick. Не то чтобы я что-то имел против ImageMagick (мне он очень нравится), но я верю в простые решения.
  2. ImageMagick выполняет двухэтапное преобразование. Сначала PDF-> PPM, затем PPM-> JPEG. Таким образом, преобразование выполняется в один этап.

Другие вещи, которые следует учитывать: с файлами, которые я тестировал, PNG сжимается лучше, чем JPEG. Если вы хотите использовать PNG, измените значение -sDEVICE=jpeg на -sDEVICE=png16m .

Для этого вы можете использовать утилиту преобразования ImageMagick, см. Некоторые примеры в http://studio.imagemagick.org/pipermail/magick-users/2002-May/002636.html :

Convert taxes.pdf taxes.jpg 

Преобразует двухстраничный PDF-файл в [2] jpeg-файлы: Tax.jpg.0, Tax.jpg.1.

Я также могу преобразовать эти JPEGS в миниатюру следующим образом:

convert -size 120x120 taxes.jpg.0 -geometry 120x120 +profile '*' thumbnail.jpg

Я даже могу преобразовать PDF прямо в миниатюру jpeg следующим образом:

convert -size 120x120 taxes.pdf -geometry 120x120 +profile '*' thumbnail.jpg

В результате для двух страниц будут созданы thumbnail.jpg.0 и thumbnail.jpg.1.

Возможно ли, что на ПК установлена ​​программа Acrobat? Я думаю, что Acrobat устанавливает расширение оболочки, поэтому предварительный просмотр первой страницы документа PDF отображается в режиме эскизов Проводника Windows. Вы можете получить эскизы самостоятельно через COM API IExtractImage, который вам нужно будет обернуть. У VBAccelerator есть пример на C#, который вы можете перенести на Python.