Skip to main content

Extraer páginas de un PDF en MacOs X desde el shell

## Antecedentes

Que si esta, que si la otra,... un baile de aplicaciones algunas de ellas muy engañosas con el concepto gratis cuando en realidad son aplicaciones capadas que buscan tu dinero.

Opensource que no es lo mismo y es mejor. En mi artículo Extraer páginas de un PDF en Linux desde el shell escribí sobre algo parecido para Linux. Hoy le toca el turno a Mac Os.

Tras un incidente con la falta de usabilidad de Dominio.es en el que te piden un DNI en el proceso de validación de un cambio de titular, tuve que extraer del PDF que me envió el cliente, las dos imágenes del DNI, y después, juntarlas en una sola imagen (no admiten más de una), para terminar con un, **se me olvide decirte que la imagen no puede tener más de 600px de ancho) realice el trabajo en el shell

Programa Poppler

Poppler es un programa de rendering de PDF basado en xpdf

Usaremos Homebrew para instalarlo.

brew install poppler

Con Poppler, extremos las imágenes a través de su binario pdfimages

pdfimages archivo.pdf prefijo_salida
  • archivo.pdf es el nombre de tu archivo
  • prefijo_salida es el prefijo que tendrán tus imágenes extraidas

Si lo hacemos así las imágenes saldrán en formato .ppm así que tendríamos que convertirlos a JPG pro imperativo de dominios.es.

Programa ImageMagick

Usaremos uno de los programas de ImageMagick, así que si no lo tenemos (es un super programa, tanto en Linux como en Mac) lo instalaremos.

brew install imagemagick

Una vez instalado de todos los binarios o programas que instala usaremos varios.

convert para convertirlo a otro formato

convert prefijo_salida-0000.ppm prefijo_salida-0000.jpg

Como tenemos mas de una imagen que bueno un comando

for img in *.ppm; do convert "$img" "${img%.ppm}.jpg"; done

Tip

Si antes de hacer nada leemos el man de poppler directamente podemos hacer la extracción a jpg.

Usamos el parametro -j

pdfimages -j archivo.pdf prefijo_salida

Crear un único archivo

Bueno, cuando vas a subir el fichero descubres que sólo quieren un fichero.

Nos toca usar convert otra vez para añadirlos.

convert prefijo_salida-0000.jpg prefijo_salida-0001.jpg +append resultado_final.jpg

Ay... que ahora no lo quieren de max de 600px de ancho.

convert prefijo_salida-0000.jpg prefijo_salida-0001.jpg -append resultado_final.jpg

Observa que +append se convirtió en -append para crearlo en vertical uno tras otro.

Pero, no. No comprobé que el ancho de cada imagen fuera de menos de 600px, y resulto que tenía 610.

Bueno, ya es el último.

convert resultado_final.jpg -resize 600x resultado_final_redimensionado.jpg

Finales

Espero que lo hallas disfrutado. Ahora te dejo que tengo que seguir con mi proyecto, Baytuka

Aviso

Esta documentación y su contenido, no implica que funcione en tu caso o determinados casos. También implica que tienes conocimientos sobre lo que trata, y que en cualquier caso tienes copias de seguridad. El contenido el contenido se entrega, tal y como está, sin que ello implique ningún obligación ni responsabilidad por parte de Castris

Si necesitas soporte profesional puedes contratar con Castris soporte profesional.