Première version stable pour WeasyPrint

WeasyPrint est un générateur de documents : il transforme des pages HTML/CSS en PDF. Il peut être utilisé en ligne de commande ou comme bibliothèque Python. Et son histoire est très intéressante, laisse-moi donc te la conter…
WeasyPrint est un générateur de documents : il transforme des pages HTML/CSS en PDF. Il peut être utilisé en ligne de commande ou comme bibliothèque Python. Et son histoire est très intéressante, laisse-moi donc te la conter…

Un peu d’histoire

WeasyPrint est né il y a environ 8 ans. J’avais dans mon entreprise un besoin de générer des rapports, des présentations et des factures automatiquement, avec une mise en page un peu travaillée.

Nous avions alors testé pas mal de solutions basées sur les formats suivants :

  • LaTeX
  • ODT
  • SVG (ça avait d’ailleurs donné CairoSVG)

Pour diverses raisons (qui sont détaillées dans cette présentation si ça vous intéresse), nous avons finalement opté pour des documents en HTML et CSS. Pourquoi, me diras-tu donc ? D’abord parce c’est un format très facile à générer, puisque toutes les applis web créent à la volée des pages en HTML. Ensuite, CSS est un langage que beaucoup de designers connaissent, ce qui est pratique pour faire des documents jolis (étonnamment, ils ont généralement moins de connaissances en LaTeX, va savoir pourquoi). Enfin, on le sait peu, mais c’est un langage qui a des fonctionnalités dédiées à l’impression, avec des spécifications permettant de gérer correctement les coupures de pages, les numéros de pages, et tout ce qu’il faut pour avoir des documents pour l’impression un peu sérieux.

Restait un tout petit point de détail : nous avions besoin d’un moteur de rendu qui sache gérer ces fonctionnalités dédiées à l’impression. Et pour être franc, les gens qui développaient Gecko (pour Firefox) et WebKit (pour Safari et Chrome à l’époque) avaient d’autres chats à fouetter que d’intégrer ces fonctionnalités. On a bien essayé également de contribuer à ces projets, mais… Tu sais, c’était bien trop difficile de faire rentrer au burin des fonctionnalités de paginations dans un logiciel sur-optimisé pour dessiner des contenus sur une seule page.

Comme nous ne souhaitions pas dépendre d’outils propriétaires (tels que Prince par exemple), nous nous sommes lancés dans cette idée stupide : créer un moteur de rendu HTML/CSS à partir de rien.

Et nous avons réussi :).

8 ans après, une version stable

8 ans après, il est temps de sortir une version stable. Nous avons au fil des années ajouté le support de nombreuses fonctionnalités, comme les en-têtes et pieds de page, pas mal d’options de typographie avancée, les références croisées, la césure automatique de mots, les formats de pages différents, l’affichage en colonnes multiples, etc. (Si les dernières fonctionnalités t’intéressent, le changelog est une bonne source d’informations.)

Bien sûr, tout n’est pas parfait. WeasyPrint ne mettra pas en page magiquement n’importe quel site pour l’impression. Il reste également des bugs à corriger et des fonctionnalités à ajouter (et il en restera toujours, héhéhé, tu te doutes bien). Mais nous comptons aujourd’hui pas mal d’utilisateurs plutôt prestigieux (dont la ville de New-York et le gouvernement du Royaume-Uni par exemple), et l’outil est largement assez stable pour être utilisé en production.

Pour fêter cela, nous avons créé un site tout beau tout neuf, avec une présentation plus claire de WeasyPrint, une nouvelle charte graphique et quelques exemples de documents pour que tu trouves l’inspiration.

Nous comptons également consacrer de plus en plus de temps au développement de logiciels libres, et connaître au mieux les besoins réels des utilisateurs réels :). Nous bénéficions évidemment nous-mêmes des améliorations qui sont apportées avec le temps, mais nous aimerions avant tout que les développements futurs bénéficient à un maximum d’utilisateurs.

Si tu es utilisateur ou juste curieux, fais-nous signe ! N’hésite donc pas à râler à cause des bugs, à demander des fonctionnalités, à améliorer la documentation ou à participer financièrement au développement.

Commentaires :
voir le flux atom
ouvrir dans le navigateur

(Source: LinuxFr.org : les dépêches)
Logo