Obtener una vista previa JPEG de un PDF en Windows?

Tengo una aplicación multiplataforma (Python) que necesita generar una vista previa JPEG de la primera página de un PDF.

En la Mac estoy desovando sorbos . ¿Hay algo similar simple que pueda hacer en Windows?

ImageMagick delega de todos modos la conversión de PDF-> bitmap a GhostScript, así que aquí hay un comando que puede usar (se basa en el comando real listado por el delegado ps:alpha en ImageMagick, solo ajustado para usar JPEG como salida):

 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 

donde $OUTPUT y $INPUT son los nombres de archivo de salida y entrada. Ajusta el 72x72 a la resolución que necesites. (Obviamente, elimine las barras invertidas si está escribiendo el comando completo en una sola línea).

Esto es bueno por dos razones:

  1. Ya no necesitas tener instalado ImageMagick. No es que tenga nada en contra de ImageMagick (me encanta en partes), pero creo en soluciones simples.
  2. ImageMagick hace una conversión de dos pasos. Primero PDF-> PPM, luego PPM-> JPEG. De esta manera, la conversión es de un solo paso.

Otras cosas a considerar: con los archivos que he probado, PNG se comprime mejor que JPEG. Si desea usar PNG, cambie el -sDEVICE=jpeg a -sDEVICE=png16m .

Puede usar la utilidad de conversión de ImageMagick para esto, vea algunos ejemplos en http://studio.imagemgick.org/pipermail/magick-users/2002-May/002636.html :

 Convert taxes.pdf taxes.jpg 

Convierte un archivo PDF de dos páginas en archivos jpeg [2]: impuestos.jpg.0, impuestos.jpg.1

También puedo convertir estos JPEGS a una miniatura como sigue:

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

Incluso puedo convertir el PDF directamente a una miniatura jpeg de la siguiente manera:

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

Esto dará como resultado una miniatura.jpg.0 y una miniatura.jpg.1 para las dos páginas.

¿Es probable que la PC tenga instalado Acrobat? Creo que Acrobat instala una extensión de shell para que las vistas previas de la primera página de un documento PDF aparezcan en la vista en miniatura de Windows Explorer. Puede obtener miniaturas a través de la API COM de IExtractImage, que deberá ajustar. VBAccelerator tiene un ejemplo en C # que puedes trasladar a Python.