Pregunta

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

En Mac estoy generando sorbos.¿Hay algo igualmente simple que pueda hacer en Windows?

¿Fue útil?

Solución

ImageMagick delega la conversión de PDF->mapa de bits a GhostScript de todos modos, así que aquí tienes un comando que puedes usar (se basa en el comando real enumerado por el ps:alpha delegado en ImageMagick, recién 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

dónde $OUTPUT y $INPUT son los nombres de los archivos de entrada y salida.Ajustar el 72x72 a cualquier resolución que necesites.(Obviamente, elimine las barras invertidas si escribe el comando completo en una sola línea).

Esto es bueno por dos razones:

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

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

Otros consejos

Puede utilizar la utilidad de conversión de ImageMagick para esto; consulte algunos ejemplos en http://studio.imagemagick.org/pipermail/magick-users/2002-May/002636.html :

Convert taxes.pdf taxes.jpg 

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

También puedo convertir estos JPEG en miniaturas de la siguiente manera:

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 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 del Explorador de Windows.Puede obtener miniaturas usted mismo a través de la API COM IExtractImage, que deberá ajustar. VBAccelerator tiene un ejemplo en C# que podrías portar a Python.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top