У меня есть кросс-платформенное (Python) приложение, которое должно генерировать предварительный просмотр JPEG первой страницы PDF.
На Mac я создаю sips. Есть ли что-то подобное, что я могу сделать в Windows?
У меня есть кросс-платформенное (Python) приложение, которое должно генерировать предварительный просмотр JPEG первой страницы PDF.
На Mac я создаю sips. Есть ли что-то подобное, что я могу сделать в Windows?
ImageMagick в любом случае делегирует преобразование в формате PDF- > bitmap в 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
на любое требуемое разрешение. (Очевидно, вычеркните обратную косую черту, если вы выписываете всю команду как одну строку.)
Это полезно по двум причинам:
Другие вещи, которые следует учитывать: с проверенными мной файлами 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, taxes.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 устанавливает расширение оболочки, поэтому в представлении миниатюр Windows Explorer отображаются предварительные просмотры первой страницы PDF-документа. Вы можете сами получить миниатюры через COM API IExtractImage, который вам нужно будет обернуть. В VBAccelerator есть пример в С#, который вы могли бы перенести на Python.