Codebase » diciembre 9, 2015

Daily Archives: diciembre 9, 2015

Lenguaje de Programacion Scripts

Script para pasar de PDF a CBR

Published by:

Una cosa guarra, rápida y útil escrita a todo correr para salir de un apuro (debe ser el sgundo o tercer script que consigo escribir y que luego haga lo que yo quiero, vamos mejorando).

En el pasado ya vimos lo que era un archivo con extensión .cbz; y también como pasar de un PDF a un CBZ, pero de forma intermedia; tan sólo convirtiendo el PDF en un montón de JPGs que luego tendríamos que comprimir y renombrar de .zip a .cbz

Pues me acabo de ver en la tesitura de tener una carpeta petada de PDFs listos para convertir de ésta manera, pero muy pocas ganas de andar comprimiendo y renombrando a mano; así que se me ha ocurrido hacer un script. Y aunque me ha llevado lo suyo (porque yo de scripts en bash ni puta idea) he conseguido hacer algo más o menos útil. He estudiado un par de scripts que había publicado Sparkster para hacerme una idea de como funcionan un poco por encima y luego he googleado un poco para resolver un problema que me estaba dando con los archivos que llevan espacios en su nombre.

El script en cuestión viene siendo lo siguiente:

#!/bin/bash
IFS=$’\n’

for i in $(ls *.pdf) ; do

nombre=`echo $i | cut -d. -f1`
pdfimages -j $i image
zip $nombre.cbz *.jpg
rm *.jpg

done

mkdir listos
mv *.cbz listos/

 

Lo que hace es coger todos los PDF de una carpeta, formar una imagen en JPG de cada página y luego comprimir todas éstas imágenes en un archivo con nombre igual al del PDF pero con extensión .cbz. Una vez comprimido elimina las imágenes. Cuando ha hecho ésto con todos los pdf, crea una carpeta llamada listos dentro de la carpeta en la que nos hayamos y mueve a su interior los comics que acaba de crear.

Como ya he dicho, una cosa rápida, sencilla y que funciona para salir del atolladero.

Para usarlo, lo pegáis dentro de un archivo de texto; por ejemplo pdf2cbz y le dáis permisos de ejecución:

chmod +x ./pdf2cbz

Cada vez que queráis convertir unos comics en PDF sólo tenéis que meterlos todos en una carpeta, colocar el script en la carpeta y ejecutarlo. Cuando haya acabado tendréis todos vuestros comics (recién horneados) en la carpeta listos que habrá creado el script.

Me ha llevado casi media hora lograr que ésta chorrada funcionase, pero sin duda, ese tiempo ha sido mucho menos del que me habría llevado hacer todo el proceso uno a uno, con el beneficio añadido de que el script no se va a equivocar por el aburrimiento de una tarea tediosa y que ya lo tengo todo preparado para más adelante.

Se agradece cualquier tipo de consejo, mejora o sugerencia para éste o para futuros scripts.