11 votos

Rápido de conversión de pdf a jpg en Linux quería

Actualmente estoy usando Imagemagick para convertir archivos Pdf a JPEG de imágenes raster. Es dolorosamente lento y consume mucha memoria.

El comando que se utiliza:

convert -geometry 1024x768 -density 200 -colorspace RGB foo.pdf bar%02d.jpg

Supongo que es lento porque se utiliza ghostscript. Pero debe haber una manera más rápida de hacer que en un cuadro de Linux.

Alguien ha encontrado una solución mejor?

saludos mat

18voto

Kurt Pfeifle Puntos 858

El uso de Ghostscript directamente (en lugar de usar ImageMagick s convert comando, que llama a Ghostscript indirectamente) es de hecho más rápido. Y le da más control sobre los parámetros de conversión. Trate de

gs \
   -sDEVICE=jpeg   \
   -o bar_%03d.jpg \
   -dJPEGQ=95      \
   -r600x600       \
   -g4960x7016     \
   foo.pdf

donde

  • -o: determina la ruta de salida+nombre de archivo (y ahorra el uso de -dBATCH -dNOPAUSE)
  • -dJPEGQ: establece la calidad de JPEG a 95%
  • -r: establece que la resolución de 600dpi
  • -g: establece el tamaño de la imagen a 4960x7016px
  • -sDEVICE: conjuntos de salida JPEG

Este comando será probablemente todavía lento para usted y crear archivos más grandes de lo esperado. Para los más pequeños filesizes y más rápida ejecución de probar este (que probablemente se compara a la calidad de la salida de su convert de la línea de comandos):

gs \
   -sDEVICE=jpeg   \
   -o bar_%03d_200dpi_q80.jpg \
   -dJPEGQ=80      \
   -r200x200       \
   -g1653x2339     \
   foo.pdf

o incluso

gs \
   -sDEVICE=jpeg   \
   -o bar_%03d_default_a4.jpg \
   -sPAPERSIZE=a4 \
   foo.pdf

(que da a 72 dpi de resolución, a menudo lo suficientemente bueno para la mayoría de las pantallas y para la mayoría de aplicaciones web).

10voto

Kurt Pfeifle Puntos 858

Por CIERTO, una de las razones ImageMagick es mucho más lenta es la que llama a Ghostscript dos veces. No convertir PDF => PNG en un solo paso, pero utiliza 2 diferentes pasos:

  • primero usa Ghostscript para PDF => PostScript de conversión;
  • a continuación, se utiliza Ghostscript para PostScript => PNG de conversión.

Usted puede aprender acerca de la configuración detallada ImageMagick "delegados" (los programas externos ImageMagick usos, tales como Ghostscript) escribiendo

convert -list delegate

(En mi sistema que es una lista de 32 diferentes comandos.) Ahora a ver qué comandos se utilizan para convertir a PNG, utilice esto:

convert -list delegate | grep -i png

Ok, esto era para Linux. Si estás en Windows, intente esto:

convert -list delegate | findstr /i png

Usted descubrirá que IM produce PNG sólo de PS y EPS de entrada. Entonces, ¿cómo IM obtener (E)PS de su PDF? Fácil:

convert -list delegate | findstr /i PDF
convert -list delegate | grep -i PDF

Ah! Utiliza Ghostscript para hacer un PDF => PS la conversión, a continuación, utiliza Ghostscript de nuevo para hacer un PS => PNG conversión. Funciona, pero no es la manera más eficiente si usted sabe que Ghostscript puede hacer PDF => PNG en un ir. Y más rápido. Y en mucho mejor calidad.

Acerca de IM manejo de conversión de PDF a imágenes a través de la Ghostscript delegado que usted debe saber dos cosas: primero y ante todo:

  1. Por defecto, si no le dan un parámetro extra, Ghostscript de salida será de imágenes con una resolución de 72dpi. Es por eso que a veces la gente aquí sugieren agregar -density 600 como convert parámetro que indica Ghostscript para utilizar una resolución de 600 dpi para su salida de la imagen.
  2. El desvío de la IM para llamar a Ghostscript dos veces para convertir primera PDF => PS y, a continuación, PS => PNG es un verdadero error. Porque nunca ganar y harldy mantener la calidad en el primer paso, pero muy a menudo pierden algo. Razones:
    • PDF puede manejar transparencias, PostScript que no se puede.
    • PDF puede incrustar fuentes TrueType, PostScript que no se puede. etc.pp.
      (La conversión en la dirección opuesta, PS => PDF, por lo tanto no es que la crítica....)

Es por eso que me había sugerido que convertir sus archivos Pdf a PNG (o JPEG) el uso de Ghostscript directamente. Y el uso de la versión más reciente 8.71 (pronto a ser lanzado: 9.00) de Ghostscript...

6voto

user177876 Puntos 11

El programa pdftoppm de los poppler paquete también es capaz de crear archivos Jpeg, y para me es aproximadamente dos veces tan rápido como el uso de gs como se describió anteriormente:

pdftoppm -jpeg -r 300 foo.pdf foo.jpg

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: