Human Drain Reverbnation

29/7/09

pdf linux (imagenes a pdf y viceversa)

A continuación describo brevemente los comandos que encontré y probé exitosamente para conversión de imágenes a pdf y viceversa, usando dos herramientas: ImageMagick (-seguramente ya lo sospechaban jejeje-) y la otra es poppler.

Primer caso: convertir un grupo de imágenes en un pdf

En debian/etch y distribuciones basadas (como ubuntu) es posible que necesiten ghostscript (paquete gs) para que los comandos funcionen, además de obviamente tener instalado ImageMagick.

$ cd /carpeta con jpgs
$ convert -define pdf:use-trimbox=true *.jpg imagenes.pdf

(Primero nos movemos a la carpeta con imagenes que queremos convertir en pdf y luego usamos el comando convert para que transforme el set de imágenes en un pdf (que para el ejemplo se llamará imagenes.pdf)



Si lo que se quiere es el proceso contrario (convertir de archivo pdf a imagenes), se puede convertir en un set de imagenes o en una imágen única.

Siguiendo con la herramienta Imagemagick (que es un set de programas para manipulación de imágenes), se puede escribir en linea de comandos unas instrucciones para que se genere un pdf con multiples paginas:

$ convert archivoaconvertir.pdf archivoconvertido.png
Se pueden especificar diferentes tipos de archivo cambiando la extensión de la salida:
$ convert archivoaconvertir.pdf archivoconvertido.jpg

Para que cambiemos la resolución de las imágenes que por defecto es de 72 dpi, lo cual puede ser muy bajo, se debe escribir la opcion -density antes de el nombre de archivo a convertir, asi:

$ convert -density 300 file.pdf image.png


Sin embargo, es más rápido extraer imágenes desde un pdf usando poppler (por lo menos en mi caso fué asi), para lo cual lo primero es instalar el paquete pdfimages de la siguiente manera:

# apt-get install poppler-utils
(para distribuciones debian-based, o que usen apt)

sintaxis de pdfimages

pdfimages /ruta_al_archivo.pdf /ruta_al_directorio_de_salida

Para extraer las imágenes de un PDF que llamaremos ejemplo.pdf y salvar las imágenes como una secuencia con extensión .ppm, se digita en linea de comandos:

$ pdfimages ejemplo.pdf /tmp/image
$ ls /tmp/image*
image-000.ppm image-001.ppm image-002.ppm etc...

(Es decir que primero se convierte el pdf en imágenes para el caso de ejemplo se generan en la carpeta temporal y luego listamos los archivos generados para comprobar que todo salió bien, lo cual es opcional por que se puede ver simplemente navegando al directorio de salida, si está lleno de imágenes consecutivas todo salió perfecto)
Normalmente, las imágenes se escriben como PBM (monocromáticas) o PPM (no monocromáticas). Con la opción -j, las imágenes se guardan en archivos JPEG.

$ pdfimages -j ejemplo.pdf /tmp/image

Si lo que se quiere es extraer determinadas páginas, por ejemplo las primeras cinco, se escribe:
$ pdfimages -j -f 5 ejemplo.pdf /tmp/image
Para especificar las últimas seis páginas, el comando sería:
$ pdfimages -j -l 6 ejemplo.pdf /tmp/image

Ahora, al parecer solo extrae imágenes tipo raw no gráficas vectoriales. Es decir, que obtendrán muchas imágenes pero no un duplicado exacto del pdf en archivos jpg, sino únicamente los archivos de imágenes (si es un pdf científico solo obtendrán las fotos no los artículos en imágenes).

Good vibe.