Coran généré sur OSX


14 octobre 2012

Si l'on veut lire un passage du Coran et qu'on a oublié de le prendre avec soi, il suffit d'avoir un Mac à portée de main et d'exécuter le script Bash suivant :

for i in `seq -w 1 114`; do curl -s "http://www.hisnulmuslim.com/coran/index.php?num_sourate=$i" | iconv -f iso-8859-1 -t utf-8 | php -r '$C=str_replace(Array("\n", "\r", "\t", chr(146)), Array("", "", "", "A".chr(39)), file_get_contents("php://stdin")); preg_match("@&lth1><span class=\"[^\"]*\">(.*?)</span>(.*?)</h1>.*?<em>(.*?)</em>.*?<p class=\"texte\">(.*?)</p>@m",$C, $M)."\n"; echo $M[1]."".$M[2]."\n".$M[3]."\n".str_replace("<br /> ", "\n", preg_replace("@<span class=\"num_verset\"[^>]*>([^<]*)</span>(.*?)@", "$1 : $2", $M[4])); echo "\n";' > sourat$i.txt; cupsfilter -o media=A4 -o landscape -o cpi=14 -o lpi=8 -o page-top=50 -o page-bottom=50 -o page-left=50 -o page-right=50 -o wrap sourat$i.txt > sourat$i.pdf 2>/dev/null; done && /System/Library/Automator/Combine\ PDF\ Pages.action/Contents/Resources/join.py -o coran.pdf sourat*pdf && rm -f sourat*

En plus de produire le Coran suivant le texte de la librairie Tawhid (grande qualité de traduction) ce script illustre les points suivants :

  • Comment générer un PDF à partir de texte brut : cupsfilter, tout simplement.
  • Comment combiner/joindre/concaténer des fichiers PDF sur OSX : le script Automator /System/Library/Automator/Combine\ PDF\ Pages.action.
  • On est aussi confortable sur un Mac que sous Linux : la CLI est au même niveau (Bash 3.X) et les commandes disponibles sont les mêmes. C'est un Unix :)

Bien évidemment je remercie hisnulmuslim.com pour la mise en ligne du texte Français.

Sources :

Moralité : il faudra réaliser une version 2 de ce script afin de générer un PDF encore plus avancé.

Accueil