Convertire cbr cbz pdf con Comics Converter

 

Convertire cbr cbz pdf con Comics Converter

Convertire cbr cbz pdf con Comics Converter

Questo mio script Bash, denominato Comics Converter, è progettato per convertire file di fumetti digitali nei formati PDF. Files CBZ (ZIP) e CBR (RAR) in file PDF unificati, con le immagini interne convertite in formato JPEG. Utilizza strumenti da riga di comando comuni e la GUI Zenity per l’interazione con l’utente e la segnalazione di errori/avvisi. Questo programma è l’evoluzione di AllCbrztoPdf, creato da me qualche tempo fa, ma aveva dei limiti. Infatti a volte il programma falliva, per una serie di motivi voluti e non voluti dal creatore del file stesso, di seguito alcuni esempi:

  1. Il nome del file estratto era troppo lungo, quindi lo script falliva.
  2. Le immagini erano in jpeg, ma un paio o più erano con estensioni diverse.
  3. Alcuni files cbr erano stati rinominati (intenzionalmente a mio parere) da cbr a cbz e viceversa.
  4. Nei nomi oltre la lunghezza c’era il problema di alcuni caratteri.
  5. La sequenza nome/numero file jpg/png generava problemi di impaginazione durante la conversione.

Comics Converter risolve i problemi sopra, partendo proprio dalla base, e cioè dalla numerazione progressiva partendo da 001, ed eliminando quella iniziale. Risolve il problema della fake estensione andando a verificarla e nel caso servisse a rinominarla correttamente. Mantiene solo il nome del file originale. Comics Converter lo sto utilizzando e testando da almeno sei mesi e non ha mai fallito una conversione. Pronto a condividerlo con gli amanti dei comics 🙂

Prerequisiti

Prima di eseguire lo script, devi assicurarti di avere installato i seguenti strumenti di sistema, poiché sono richiesti dallo script:

  • pdfimages: Parte del pacchetto Poppler, utilizzato per estrarre immagini dai PDF.
  • convert: Parte di ImageMagick, utilizzato per convertire formati di immagine in JPEG.
  • img2pdf: Utilizzato per convertire le singole immagini in PDF.
  • pdftk (o equivalente se non disponibile): Utilizzato per unire i PDF delle singole pagine.
  • unzip: Utilizzato per estrarre archivi CBZ (ZIP).
  • zenity: Utilizzato per finestre di dialogo grafiche (selezione directory, errori, avvisi, info).
  • head: Utilizzato per leggere l’inizio dei file per i magic bytes.
  • xxd: Utilizzato per visualizzare i magic bytes in esadecimale.
  • unrar O 7z (p7zip): Necessari per estrarre archivi CBR (RAR).

Lo script ad ogni modo controllerà la presenza dei requisiti sopra e se mancano, avviserà l’utente tramite Zenity e uscirà.

Download
git clone https://github.com/fconidi/comics-converter.git
cd comics-converter/
chmod +x comics_converter.sh
./comics_converter.sh

SCREENCAST

enjoy 😉

 

Download Script con Gui

 

 

Questo è uno script per il download che utilizza wget e zenity,  quindi crea una finestra di dialogo dove inserire il link da scaricare, inoltre supporta il resume nel caso si annullasse la procedura di download.

 

DOWNLOAD() {
rand="$RANDOM `date`"
pipe="/tmp/pipe.`echo '$rand' | md5sum | tr -d ' -'`"
mkfifo $pipe
wget -c $1 2>&1 | while read data;do
if [ "`echo $data | grep '^Length:'`" ]; then
total_size=`echo $data | grep "^Length:" | sed 's/.*\((.*)\).*/\1/' | tr -d '()'`
fi
if [ "`echo $data | grep '[0-9]*%' `" ];then
percent=`echo $data | grep -o "[0-9]*%" | tr -d '%'`
current=`echo $data | grep "[0-9]*%" | sed 's/\([0-9BKMG.]\+\).*/\1/' `
speed=`echo $data | grep "[0-9]*%" | sed 's/.*\(% [0-9BKMG.]\+\).*/\1/' | tr -d ' %'`
remain=`echo $data | grep -o "[0-9A-Za-z]*$" `
echo $percent
echo "#Scaricamento da $1\n$current of $total_size ($percent%)\nVelocità : $speed/Sec\nTempo Stimato : $remain"
fi
done > $pipe &

wget_info=`ps ax |grep "wget.*$1" |awk '{print $1"|"$2}'`
wget_pid=`echo $wget_info|cut -d'|' -f1 `

zenity --progress --auto-close --text="Connessione a  $1\n\n\n" --width="350" --title="Scaricamento"< $pipe
if [ "`ps -A |grep "$wget_pid"`" ];then
kill $wget_pid
fi
rm -f $pipe
}

if [ $1 ];then
DOWNLOAD "$1"
else
dllink=$(zenity --entry --text "Inserire link da scaricare :" --width="350" --entry-text "" --title="Download")
if [ $dllink ];then
DOWNLOAD "$dllink"
fi
fi

 

salvare come download.sh

$ chmod +x download.sh

$ ./download.sh

nel caso di errori di formattazione si può scaricare da questo link.

 

enjoy ;)