Un script pour convertir des fichiers au format PDF vers le format CBZ

Un script pour convertir des fichiers au format PDF vers le format CBZ

Adepte des jeux de plateau et des jeux de rôle, je recherchais une solution pour faciliter la consultation des règles de ces jeux sur une tablette. Le format PDF est particulièrement lourd pour du matériel mobile, surtout pour des fichiers de grande taille.

Après quelques recherches et j’ai donc découvert le format CBZ. C’est un format que l’on utilise pour lire des bandes dessinées, des comix , des mangas … Son principe est simple : il suffit de créer un répertoire, de placer  à l’intérieur les fichiers JPEG de chacune des pages de son document, et de compresser ce répertoire en zip. Il ne reste plus qu’à remplacer l’extension du fichier .zip en .cbz.

A l’aide d’un lecteur dédié sur sa tablette , le format CBZ permet une consultation beaucoup plus fluide, surtout lorsque le document contient énormément de pages ( les règles d’un jeu de rôle peuvent très vite contenir de 400 à 600 pages).

Ayant un certain nombre de documents PDF à convertir à la volée, je me suis donc attelé à la réalisation d’un script, afin d’automatiser toutes ces manipulations.

Son principe est simple. Dans un répertoire vide vous placez tous les documents PDF que vous désirez convertir. Vous ouvrez un terminal dans ce même répertoire. Et vous lancez votre script. Tous les fichiers PDF présents dans ce répertoire vont donc être convertis. La manœuvre peut prendre évidemment un certain temps, surtout si le nombre de PDF est important, et/ou que leur taille est grande.

Cependant, sur certains fichiers utilisant des calques et de la transparence, des problèmes peuvent apparaître. Dans ces quelques cas la technique de conversion utilisant Gimp fera le travail.

Enfin, comme prérequis, il vous faudra installer préalablement imagemagick.

Créez dans votre répertoire bin un fichier texte pdf2cbz, en y copiant-collant le code ci-dessous. Rendez le ensuite auto-exécutable : « chmod +x pdf2cbz »

La densité des fichiers JPEG ainsi créés , est de 300 DPI. Si la taille des fichiers ainsi générés est trop grande pour votre utilisation, vous pouvez évidemment diminuer cette densité …

#!/bin/bash
 # indique au système que l'argument qui suit est le programme utilisé pour exécuter ce fichier.
 # En cas général les "#" servent à faire des commentaires comme ici
 echo "DEMARRAGE DE LA CONVERSION"
 echo "Création d'un dossier par PDF et conversion à l'intérieur du PDF en JPG."
 echo "Veuillez patientez, cela peut prendre un certains temps ..."
 echo " "
 echo " "
 for x in *.pdf; do mkdir "${x%.*}" && convert -density 300 "$x" "${x%.*}"/page-%03d.jpg;
 done
 echo "Création des CBZ et nettoyage des dossiers de travail."
 for x in *; do if [ -d "$x" ]; then zip -r "$x.cbz" "$x"; fi; done
 for x in *; do if [ -d "$x" ]; then rm -R "$x"; fi; done
 echo " "
 echo " "
 echo "CONVERSION TERMINÉE"
 sleep 2

Placez vous ensuite dans le répertoire où se trouve vos PDF (des copies évidemment, pas des originaux !), et exécuter dans votre terminal préféré pdf2cbz.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *