Saltar al contenido

¿Cómo convertir un PDF a JPG con línea de comando en Linux?

Solución:

Puedes probar ImageMagick’s convert utilidad.

En Ubuntu, puede instalarlo con este comando:

$ sudo apt-get install imagemagick

Usar convert como esto:

$ convert input.pdf output.jpg
# For good quality use these parameters
$ convert -density 300 -quality 100 in.pdf out.jpg

Por mi vida, durante los últimos 5 años, no puedo conseguir imagemagick trabajar consistentemente (si es que lo hace) para mí, y no sé por qué la gente lo recomienda continuamente una y otra vez. Busqué en Google cómo convertir un PDF a JPEG hoy, encontré esta respuesta y probé convert, y no me funciona en absoluto:

$ convert in.pdf out.jpg
convert-im6.q16: not authorized `in.pdf' @ error/constitute.c/ReadImage/412.
convert-im6.q16: no images defined `out.jpg' @ error/convert.c/ConvertImageCommand/3258.

Luego, recordé que había otra herramienta que uso y sobre la que escribí, así que busqué en Google “Linux convertir pdf a jpg Gabriel Staples”, hice clic en el primer resultado y me desplacé hacia abajo hasta mi respuesta. Esto es lo que funciona perfectamente para mí. Este es el formato de comando básico:

pdftoppm -jpeg -r 300 input.pdf output 

los -jpeg establece el formato de imagen de salida en JPG, -r 300 establece la resolución de la imagen de salida en 300 DPI, y la palabra output será el prefijo de todas las páginas de imágenes, que se numerarán y colocarán en el directorio actual en el que está trabajando. Sin embargo, en mi opinión, una mejor manera es usar mkdir -p images primero para crear un directorio de “imágenes”, luego establezca la salida en images/pg para que todas las imágenes de salida se coloquen limpiamente en el images dir que acaba de crear, con el prefijo de archivo pg delante de cada uno de sus números.

Por lo tanto, aquí están mis comandos favoritos:

  1. [Produces ~1MB-sized files per pg] Salida en .jpg formato en 300 DPI:

     mkdir -p images && pdftoppm -jpeg -r 300 mypdf.pdf images/pg
    
  2. [Produces ~2MB-sized files per pg] Salida en .jpg formato a la más alta calidad (mínima compresión) y todavía en 300 DPI:

     mkdir -p images && pdftoppm -jpeg -jpegopt quality=100 -r 300 mypdf.pdf images/pg
    
  3. Si necesita más resolución, puede probar 600 DPI:

     mkdir -p images && pdftoppm -jpeg -r 600 mypdf.pdf images/pg
    
  4. … o 1200 DPI:

     mkdir -p images && pdftoppm -jpeg -r 1200 mypdf.pdf images/pg
    

Consulte las referencias a continuación para obtener más detalles y opciones.

Referencias:

  1. [my answer] Convierte PDF a imagen con alta resolución
  2. [my answer] https://askubuntu.com/questions/150100/extracting-embedded-images-from-a-pdf/1187844#1187844

libvips puede convertir PDF -> JPEG rápidamente. Viene con la mayoría de las distribuciones de Linux, está en homebrew en macos y puede descargar un binario de Windows desde el sitio libvips.

Esto convertirá el PDF en un JPG con el DPI predeterminado (72):

vips copy somefile.pdf somefile.jpg

Puede utilizar la opción de dpi para establecer alguna otra resolución de renderizado, por ejemplo:

vips copy somefile.pdf[dpi=600] somefile.jpg

Puede seleccionar páginas como esta:

vips copy somefile.pdf[dpi=600,page=12] somefile.jpg

O renderice cinco páginas a partir de la página tres de esta manera:

vips copy somefile.pdf[dpi=600,page=3,n=5] somefile.jpg

Los documentos para pdfload tienen todas las opciones.

Con esta imagen de referencia, veo:

$ /usr/bin/time -f %M:%e convert -density 300 r8.pdf[3] x.jpg
276220:2.17
$ /usr/bin/time -f %M:%e pdftoppm -jpeg -r 300 -f 3 -l 3 r8.pdf x.jpg
91160:1.24
$ /usr/bin/time -f %M:%e vips copy r8.pdf[page=3,dpi=300] x.jpg
149572:0.53

Así que libvips es aproximadamente 4 veces más rápido y necesita la mitad de la memoria, al menos en esta prueba.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *