Résumée: Le problème qui se pose quand on veut automatiser la transformation des émail, c'est la préparation du logiciel au grand choix de formats.
Simple "
Plain-Text" n'a pas besoin de traitement, pendant que les messages en HTML sont l'horreur. D'un fichier *.eml de 150 messages, environ 10% ne peuvent pas être transformés par mon propre logiciel, car ils contiennent de code HTML mal-formaté. Il y a des tags pas fermés, des symboles «
>» où ils ne sont pas permis, normalement, et bien-sûr des sauts-de-ligne au milieu des «
entities» ou des tags, comme "
&éac\nute" et "
<di\nv>"; Mais chaque fois que j'adapte mon programme aux bizarreries que je trouve dans mes mails, une autre apparait... quelle galère. Pour que ça marche, il faut écrire des routines qui corrigent le HTML avant de convertir une message en PDF, comme
tidy en mode «
overwrite».
Constat 1: La transformation des fichiers *.eml en PDF avec un processeur XSL/FO est praticable seulement si on peut exclure d'une manière fiable les parties des mails, qui sont mal-formatés.
Constat 2: J'ai écrit beaucoup de code Ruby et appris des choses, mais pas réussi de créer un système utilisable. Je favorise alors de nouveau
- Code: Tout sélectionner
for f in *.eml; do a2ps "$f" -o temp.ps; ps2pdf14 temp.ps `basename $f .eml`.pdf; done
et forcement une installation de Cygwin sous Windows.
:-(Quand-même pour compléter, j'ajoute la version actuelle du pauvre «
CremeFraiche». C'est dans le fichier body.rb où les choses sont difficiles. Le reste semble marcher. Il manquent des traductions dans le fichier «
translations», quelques messages sont alors affichés en anglais.
CremeFraiche (zip, 52K)
J'ajoute: Je réfléchis d'écrire mon propre HTML-parser et d'utiliser
Prawn directement pour la cŕeation du pdf, c'est à dire sans XSL/FO.
«La joie naît de se sentir en harmonie avec la symphonie universelle. Nous sommes d’abord des êtres humains, et je ne veux pas que l’on m’appelle consommateur !» (Pierre Rabhi, Novembre 2010)