tag:linuxfr.org,2005:/tags/weasyprint/publicLinuxFr.org : les contenus étiquetés avec « weasyprint »2022-10-16T09:52:56+02:00/favicon.pngtag:linuxfr.org,2005:News/411992022-09-22T19:35:27+02:002022-09-24T09:11:45+02:00Des nouvelles de WeasyPrint, ou comment développer du libre à (presque) plein tempsLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p><a href="https://weasyprint.org">WeasyPrint</a> est un générateur de documents qui transforme du HTML/CSS en PDF. C’est écrit en Python, c’est libre (bah oui, sinon on n’en parlerait pas ici), et nous en avions déjà discuté ici il y a quelques années dans <a href="//linuxfr.org/news/premiere-version-stable-pour-weasyprint">un petit article</a>.</p>
<p>Avec le temps (plus de 11 ans depuis le premier commit, que le temps passe vite ma p’tite dame…), le logiciel a gagné une sacrée ribambelle d’utilisateurs avec plus de 750 000 téléchargements par mois. Parmi tous ces gens qui utilisent WeasyPrint, on a forcément rencontré plein de gens avec plein d’idées pour générer plein de drôles de trucs ! Nous avons croisé entre autres des rapports de sécurité informatique 🖥️, des livres de jeu de rôle 🎮️, des tickets 🎫️, des documents scientifiques 🧮️, des factures de sites de vente en ligne 📄️, des compte-rendus biologiques ⚛️, des modes d’emploi de fours 🧑🍳️, des lettres officielles 💌️, des étiquettes électroniques 🏷️, des affiches promotionnelles en pharmacies ⚕️, des diplômes universitaires 🎓️… </p>
<p>Forts de ce petit succès, Lucie Anglade et moi (Guillaume Ayoub) avons créé depuis deux ans une structure qui s’appelle <a href="https://courtbouillon.org">CourtBouillon</a> (oui, parce que notre autre passion est la bonne nourriture) dédiée au développement de WeasyPrint et de ses dépendances. Nous avons donc pu passer beaucoup de temps à travailler sur le logiciel et apporter plein de nouveautés, tout en nous posant beaucoup de questions pour assurer un modèle économique viable. Voilà ce que l’on aimerait partager avec vous.</p>
</div><ul><li>lien nᵒ 1 : <a title="https://weasyprint.org/" hreflang="en" href="https://linuxfr.org/redirect/111073">Le site de WeasyPrint</a></li><li>lien nᵒ 2 : <a title="https://courtbouillon.org/" hreflang="en" href="https://linuxfr.org/redirect/111074">Le site de CourtBouillon</a></li><li>lien nᵒ 3 : <a title="https://github.com/Kozea/WeasyPrint/" hreflang="en" href="https://linuxfr.org/redirect/111075">Le dépôt de WeasyPrint</a></li><li>lien nᵒ 4 : <a title="https://thym.courtbouillon.org/1" hreflang="en" href="https://linuxfr.org/redirect/111076">Le sondage en cours</a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li><a href="#toc-deux-ans-%C3%A0-toute-vitesse">Deux ans à toute vitesse</a></li>
<li><a href="#toc-le-temps-et-largent">Le temps et l’argent</a></li>
<li><a href="#toc-le-futur">Le futur</a></li>
<li><a href="#toc-en-attendant-la-suite">En attendant la suite</a></li>
</ul>
<h2 id="toc-deux-ans-à-toute-vitesse">Deux ans à toute vitesse</h2>
<p>Depuis le début de l’an dernier, nous avons publié <a href="https://github.com/Kozea/WeasyPrint/releases">4 versions majeures</a> qui englobent une bonne liste de fonctionnalités dont voici les plus importantes :</p>
<ul>
<li>les notes de bas de page,</li>
<li>les coupures de blocs après un certain nombre de lignes (pour que le texte ne dépasse pas de la page),</li>
<li>les coupures forcées ou interdites dans les colonnes,</li>
<li>le respect de la norme PDF/A (pour avoir des documents archivables),</li>
<li>les coupures de pages dans les cellules d’un tableau, les blocs flottants et les blocs absolus,</li>
<li>la gestion des polices bitmap (pratique pour faire des étiquettes électroniques parfaites au pixel près),</li>
<li>l’insertion de points de suite (mais si, vous savez ce que c’est, ce sont les petits points entre le nom d’un chapitre et le numéro de page dans une table des matières),</li>
<li>la génération reproductible de fichiers PDF,</li>
<li>le support des principaux sélecteurs CSS de niveau 4 (comme <code>:is()</code>, <code>:where()</code>, <code>:has()</code>),</li>
<li>sans oublier une génération bien plus rapide et des fichiers générés plus petits.</li>
</ul>
<p>Nous en avons également profité pour créer <a href="https://github.com/CourtBouillon/pydyf">pydyf</a>, une bibliothèque bas niveau de génération de PDF, histoire d’avoir les mains libres pour ajouter certaines fonctionnalités. C’était une volonté depuis de longues années (pour supporter le format PDF/A par exemple) mais la spécification PDF a nécessité un peu de temps avant d’être apprivoisée 😉️.</p>
<p>Pour parler de tout cela, nous avons écrit <a href="https://doc.courtbouillon.org/weasyprint/">une toute nouvelle documentation</a> que nous espérons mieux organisée et plus claire. Nous avons également rédigé <a href="https://www.stella.coop/blog/00026-des-documents-adaptes-a-vos-envies-et-vos-formats">une longue série d’articles</a> avec nos copains de <a href="https://www.madcats.fr/">Madcats</a> qui ont créé de très jolis documents dont vous pouvez vous inspirer pour créer les vôtres.</p>
<p>En bref, on n’a pas chômé. Mais où a-t-on trouvé tout ce temps ?</p>
<h2 id="toc-le-temps-et-largent">Le temps et l’argent</h2>
<p>La raison d’être de CourtBouillon est de créer, développer et maintenir des logiciels libres. Et pour cela, il faut avoir du temps, beaucoup de temps, <strong>vraiment</strong> beaucoup de temps.</p>
<p>Tout le monde veut toujours plein, plein, plein de fonctionnalités, et nous avons un avantage de ce côté-là : CSS en voit fleurir de nombreuses à un rythme soutenu. Comme nous nous appuyons rigoureusement sur ces spécifications, nous avons donc « juste » à les implémenter. Évidemment, à chaque fois qu’une nouvelle propriété est supportée par les navigateurs, les gens se ruent sur nous pour demander pourquoi WeasyPrint ne la supporte toujours pas alors que Chrome et Firefox la gèrent très bien depuis au moins 2 semaines (j’éxagère à peine 😁️). Pour la faire court : ça prend du temps.</p>
<p>Au-delà du code et de ses fonctionnalités, nous passons des jours entiers à trier les tickets, répondre aux questions, tweeter, écrire des articles, corriger des bugs et peaufiner la documentation. Ce travail est peu visible mais il prend bien plus de temps que ce que la plupart des utilisatrices et des utilisateurs imaginent. C’est pourtant un travail de fond nécessaire pour garder nos projets en bonne santé et ne pas crouler rapidement sous les demandes insatisfaites.</p>
<p>Encore au-delà ce travail peu valorisé se cache tout le travail de l’ombre que l’on ne voit pas du tout. Lire des spécifications, que ce soit pour CSS ou PDF, est devenu une seconde nature pour nous, et nous nous sommes habitués au langage étrange que l’on trouve dans ces documents. Certaines rumeurs disent même que nous en rêvons la nuit… Nous devons également faire particulièrement attention à la qualité du code. Nous sommes une toute petite équipe et nous avons, mine de rien, à maintenir un moteur de rendu HTML/CSS… Il est par conséquent très important de s’assurer au quotidien que la dette technique ne s’accumule pas et que l’architecture globale est toujours bien solide, sous peine de se retrouver sous l’eau dans le futur à l’ajout de la moindre fonctionnalité. Au-delà de l’interminable suite de tests (car oui, dans WeasyPrint nous avons plus de lignes de Python pour les tests que pour le code), il est nécessaire de retoucher l’architecture de nos bibliothèques de temps en temps, tout comme nous devons supporter les dernières versions de Python et des diverses dépendances que nous avons.</p>
<p>Pour avoir tout ce temps et en même temps gagner quelque argent pour manger (parce qu’on aime beaucoup ça, je vous le rappelle), nous fournissons divers services à des clients utilisateurs un peu partout dans le monde. Certaines fonctionnalités sont ainsi payées par des entreprises qui ont des besoins spécifiques et sont ensuite ravies d’avoir une belle version toute neuve qui répond parfaitement à leurs besoins. D’autres nous contactent pour avoir de l’aide à la création de documents, nous nous occupons alors de créer du HTML et du CSS aux petits oignons (miam) en accord avec leurs maquettes et leur charte graphique. Nous avons enfin un <a href="https://opencollective.com/courtbouillon">système de sponsoring et de dons</a> qui ouvre droit à afficher un beau logo sur notre site et à avoir un support prioritaire par mail pour les questions techniques.</p>
<p>Et pour l’instant, ça marche.</p>
<h2 id="toc-le-futur">Le futur</h2>
<p>Même si CourtBouillon est jeune, nous arrivons actuellement à vivre en passant la grande majorité de notre temps de travail sur le libre.</p>
<p>Bien sûr, c’est une situation extrêmement grisante et souvent très épanouissante : qui n’a jamais rêvé de vivre du libre dans ce bon vieux repaire de libristes extrémistes qu’est LinuxFR 😍️ ? Nous avons travaillé notre communication pour toucher des personnes qui partagent nos valeurs, ce qui nous a amenés à rencontrer des gens absolument formidables. Nous avons pu croiser la route de clients disséminés un peu partout dans le monde, nous ouvrir à des problématiques que nous ne connaissions pas et apporter notre aide à des personnes pour lesquelles nous avons beaucoup d’estime et de sympathie…</p>
<p>Il y a bien sûr des contreparties à tout ce bonheur. Au niveau financier, si l’activité actuelle nous permet de nous rémunérer (et c’est déjà appréciable au bout de deux ans), nous sommes loin des standards auxquels nous pourrions postuler en tant qu’ingénieurs en informatique. Nos sponsors et nos clients nous apportent aujourd’hui la majorité de nos revenus, nous sommes donc évidemment soumis aux aléas de la demande avec une alternance de semaines chargées lorsque nous avons beaucoup de clients et des semaines plus creuses où nous pouvons nous atteler au travail invisible. Nous essayons donc au maximum de développer les dons et les sponsors récurrents pour assurer autant que possible la stabilité de notre modèle.</p>
<p>Au niveau des fonctionnalités qui arrivent (parce que c’est ça qui intéresse les gens, hein !), nous avons ouvert un <a href="https://thym.courtbouillon.org/1">sondage</a> pour mieux connaître les besoins attendus. <a href="https://www.courtbouillon.org/blog/00010-weasyprint-survey-2021">Celui de l’an dernier</a> nous avait éclairés sur les points à traiter en priorité, nous avons donc pu mettre notre énergie au service des attentes les plus grandes… et bien sûr des clients qui ont gracieusement financé certains de ces développements ! Plusieurs fonctionnalités toutes fraîches sont déjà bien avancées : nous proposerons par exemple dans les prochains mois la possibilité de générer des fichiers PDF plus accessibles (avec le support partiel de PDF/UA) et le support des <a href="https://developer.mozilla.org/fr/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide">polices variables</a>.</p>
<p>Et un jour, peut-être, nous pourrons enfin nous lancer à corps perdu dans le support de <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout">CSS Grid</a>… si le temps nous le permet 😀️.</p>
<h2 id="toc-en-attendant-la-suite">En attendant la suite</h2>
<p>En attendant la suite des aventures, n’hésitez pas à nous suivre, à jeter un coup d’œil à WeasyPrint si vous ne l’avez jamais essayé, à ouvrir des tickets pour râler si vous rencontrez des problèmes, à nous soutenir si vous aimez ce que l’on fait, et à nous solliciter si vous avez des envies particulières.</p>
<p>Pour celles et ceux qui sont moins intéressés par le côté technique, nous sommes également ouverts pour discuter de gestion de projets libres, du lien à la communauté, de modèles économiques, et de tout ce qui pourrait vous intéresser sur le sujet !</p>
</div><div><a href="https://linuxfr.org/news/des-nouvelles-de-weasyprint-ou-comment-developper-du-libre-a-presque-plein-temps.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/128823/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/des-nouvelles-de-weasyprint-ou-comment-developper-du-libre-a-presque-plein-temps#comments">ouvrir dans le navigateur</a>
</p>
liZeBenoît SibaudXavier TeyssierYsabeau 🧶 🧦https://linuxfr.org/nodes/128823/comments.atomtag:linuxfr.org,2005:Diary/383292019-01-21T18:14:47+01:002019-01-21T18:14:47+01:00Gestion de documentationLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Bonjour à tous,</p>
<p>Je suis devant une problématique où il me manque des outils informatique pour accomplir une tache qui me semble de l'ordre du faisable techniquement avec des briques existante. Mais avant de redécouvrir la roue, j'aimerai votre avis et retours d'expérience.</p>
<h3 id="toc-le-contexte">Le contexte</h3>
<p>L'entreprise dans laquelle je suis conçois et vends des équipements industriels. Chaque équipement est unique mais repose sur des bases similaires (des plateformes identiques auxquelles on ajoute des options standardisées ainsi que des options spécifiques développées pour le client).</p>
<p>Avec chacun de ces équipements, on fourni une documentation extensive du matériel (plans, schémas électriques, hydraulique et pneumatiques, équipements et instruments fournis, description du soft de l'automate, manuel d'utilisation, manuel de maintenance, manuel d'installation…), qui représente plusieurs centaines de pages. Ces documents sont vérifiés et signés en interne et par le client avant et après la fabrication et font souvent l'objet de modifications (suivi par des versions, elles vérifiées et signées).</p>
<h3 id="toc-létat-actuel">L'état actuel</h3>
<p>Mis à part les plans et schémas qui sont sous un format spécifiques, la plupart de ces documents sont aujourd'hui créés sous MS Word à partir de documents "masters" que l'on adapte à chaque équipement. Ils contiennent cependant des schémas, tableaux et images, des entêtes et pieds de page. La montée de version des documents est suivie à la main directement dans le fichier avec un tableau à remplir.</p>
<p>Vous pouvez facilement imaginer les heures perdues à manipuler les fichiers, indiquer le numéro de série de l'équipement sur l'ensemble des documents, l'oubli d'éléments liés à telle ou telle option dans tel ou tel document, les erreurs possibles lorsque les masters utilisés ne sont pas à jour où lorsque l'on souhaite faire un équipement quasi identique à un ancien projet (et que le master utilisé pour celui-ci date). Les montées de versions aux modifications non tracées, etc… La difficulté de vérifier une nouvelle version car on n'a pas la trace exacte des modifications…</p>
<h3 id="toc-mon-souhait">Mon souhait</h3>
<p>La problématique m'a immédiatement fait penser à l'idée que je me fait du développement d'un programme informatique à l'aide de git.<br>
On a un master qui contient l'ensemble des options existantes, à partir duquel on crée des branches (chacun des équipement unique). Dans ces branches on sélectionne les options standardisées et on y ajoute les options spécifiques à cet équipement. <br>
Dans le cas où le master évolue, on pourrait faire des fusions afin d'appliquer ces "commit" à l'ensemble des branches qui en auraient besoin.<br>
De plus les différentes versions des documents pourraient représenter des tag. On pourrait même gérer la signature du document (équivalent des revues de code).<br>
Je rêve donc d'un système où, en sélectionnant la plateforme de base, les options standardisées, </p>
<h3 id="toc-mon-souci">Mon souci</h3>
<p>Aujourd'hui j'imagine que si j'étais seul, je créerai un dépot git, quelques scripts python pour fusionner des fichiers décrivant chaque options écris avec un format plain text (du type markdown). Et un fichier de config qui serait dans chacune des branches pour sélectionner les options.</p>
<p>Seulement je ne suis pas seul, et les collègues qui travaillent sur ces dossiers ne sont pas familiers avec les outils de versionning propre à l'informatique. De plus je souhaiterais avoir un système qui ne repose pas tout entier sur moi pour le développement et le support. Pour de multiple raisons (pas maintenable si je quitte la boîte, donc ne sera pas accepté, et je ne suis pas développeur, je me lance dans ce projet car je souhaite améliorer l'existant, pas parce que c'est ma tâche).</p>
<p>L'édition des documents doit pouvoir se faire avec un outil WYSIWYG. Mes collègues ne sont pas non plus totalement réfractaires à gérer les fichiers de façon différente (découper par option, etc…), mais aller sur du balisage et une gestion des images complexe serait rédhibitoire.</p>
<h3 id="toc-la-question">La question</h3>
<p>Du coup je me tourne vers vous pour voir si vous connaissez des outils de gestion de documentation qui pourrait correspondre plus ou moins à ce que je recherche, ou du moins des pistes pour avancer ou en faire une partie.</p>
<p>Désolé pour le long journal, j'ai souvent tendance à rentrer dans les détails pour être bien compris.</p>
<p>Voici un peu ce que j'ai farfouillé pour l'instant, en vrac :<br>
Simul : <a href="https://www.simuldocs.com/">https://www.simuldocs.com/</a> => propriétaire et au fonctionnement un peu obscur, pérenne dans le temps ?<br>
Publication : Weasyprint => comment l'intégrer dans le workflow ? Ecrire les documents en html ?<br>
Versionning : git et pandoc <a href="http://hrishioa.github.io/tracking-word-documents-with-git/">http://hrishioa.github.io/tracking-word-documents-with-git/</a> => manque la notion de merge</p>
<p>Nota: Je suis ingénieur en mécanique et je ne suis pas développeur. J'utilise git pour des petit projets perso car je programme un peu dans mes temps libre, mais de façon très basique avec seulement 1 utilisateur.</p>
<div><a href="https://linuxfr.org/users/strash/journaux/gestion-de-documentation-6e99aa61-23eb-486b-b989-8a34ca0778f6.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/116258/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/strash/journaux/gestion-de-documentation-6e99aa61-23eb-486b-b989-8a34ca0778f6#comments">ouvrir dans le navigateur</a>
</p>
Strashhttps://linuxfr.org/nodes/116258/comments.atomtag:linuxfr.org,2005:News/388912018-11-09T16:58:40+01:002018-11-11T17:00:55+01:00Première version stable pour WeasyPrintLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>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…</p>
</div><ul><li>lien nᵒ 1 : <a title="https://linuxfr.org/users/lize/journaux/premiere-version-stable-pour-weasyprint" hreflang="fr" href="https://linuxfr.org/redirect/103026">Journal à l’origine de la dépêche</a></li><li>lien nᵒ 2 : <a title="https://weasyprint.org/" hreflang="en" href="https://linuxfr.org/redirect/103027">Le site tout beau tout neuf de WeasyPrint</a></li><li>lien nᵒ 3 : <a title="https://github.com/Kozea/WeasyPrint" hreflang="en" href="https://linuxfr.org/redirect/103028">Code source sur GitHub</a></li></ul><div><h2 id="toc-un-peu-dhistoire">Un peu d’histoire</h2>
<p>WeasyPrint est né il y a environ huit 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.</p>
<p>Nous avions alors testé pas mal de solutions basées sur les formats suivants :</p>
<ul>
<li>
<a href="https://fr.wikipedia.org/wiki/LaTeX" title="Lamport TeX">LaTeX</a> ;</li>
<li>
<a href="https://fr.wikipedia.org/wiki/OpenDocument" title="OpenDocument text">ODT</a> ;</li>
<li>
<a href="https://fr.wikipedia.org/wiki/Scalable_Vector_Graphics" title="Scalable Vector Graphics">SVG</a> (ça avait d’ailleurs donné <a href="https://cairosvg.org">CairoSVG</a>).</li>
</ul>
<p>Pour diverses raisons (qui sont détaillées dans <a href="https://pyvideo.org/pycon-fr-2015/du-site-dynamique-au-document-imprimable-en-python.html">cette présentation</a> 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 de jolis documents (é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.</p>
<p>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 suroptimisé pour dessiner des contenus sur une seule page.</p>
<p>Comme nous ne souhaitions pas dépendre d’outils propriétaires (tels que <a href="https://www.princexml.com/">Prince</a>, par exemple), nous nous sommes lancés dans cette idée stupide : créer un moteur de rendu HTML/CSS à partir de rien.</p>
<p>Et nous avons réussi. :)</p>
<h2 id="toc-huit-ans-après-une-version-stable">Huit ans après, une version stable</h2>
<p>Huit ans après, il est temps de sortir une version stable. Nous avons au fil des années ajouté la prise en charge 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 page différents, l’affichage en colonnes multiples, etc.<br>
<em>N. D. A. : Si les dernières fonctionnalités t’intéressent, le <a href="https://weasyprint.readthedocs.io/en/latest/changelog.html">journal des modifications</a> est une bonne source d’information.</em></p>
<p>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 bogues à corriger et des fonctionnalités à ajouter (et il en restera toujours, eh eh eh, 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.</p>
<p>Pour fêter cela, nous avons créé <a href="https://weasyprint.org/">un site tout beau tout neuf</a>, avec une présentation plus claire de WeasyPrint, une nouvelle charte graphique et quelques exemples de documents pour que tu trouves l’inspiration.</p>
<p>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.</p>
<p>Si tu es utilisateur ou juste curieux, <a href="https://weasyprint.org/about/">fais‐nous signe</a> ! N’hésite donc pas à râler à cause des bogues, à demander des fonctionnalités, à améliorer la documentation ou à participer financièrement au développement.</p>
</div><div><a href="https://linuxfr.org/news/premiere-version-stable-pour-weasyprint.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/115680/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/premiere-version-stable-pour-weasyprint#comments">ouvrir dans le navigateur</a>
</p>
liZeZeroHeureDavy Defaudpalm123https://linuxfr.org/nodes/115680/comments.atom