Bonjour à tous,
Dans le cadre d’un projet pro on me demande de générer des Word un peu complexes (des CV’s avec un style) depuis un site Django.
Après quelques recherches j’ai aboutit sur Python-docx-template qui semble convenir pour :
- Prendre un template docx
- remplacer des valeurs dans le fichier (part exemple un placeholder {{nom}}) en conservant la mise en forme définie dans le Word
Jusque ici pas de souci je génère mon word.
Cependant quand j’en suis arrivé à certaines données qui sont des RichText dans mes models django j’ai buté sur un problème : avec le HTML / Mardown (je peux basculer de l’un à l’autre sans souci) que j’ai comment transposer ca dans un word en conservant ce qui est dans le HTML / Markdown dont je ne peux prévoir la structure juste en sachant les elt possibles
Par exemple :
<p>blablabla <strong>bla</strong> blabla étapes <u>blablabla</u></p>
<ul>
<li>elt de liste</li>
</ul>
Autant chercher un ou des elt dans un HTMl pas de souci mais comment le découper en bloc suivant une logique qui n’est pas forcement celle du HTML sans savoir à l’avance la structure ?
Je précise que pour éditer mes Word je n’ai absolument pas le droit de passer par les API de Google (qui sont fort pratiques pour cela en vrai …)
Mes questions sont donc les suivantes:
- Quelle logique appliqueriez-vous pour découper le HTML, sans connaitre sa structure d’avance, vers des "blocs" plus humain (pour transformer ca en format word) ?
- Avec quoi généreriez-vous le word ? Je vois plusieurs librairies qui semblent toutes avoir des défauts (celle dont je parle semble avoir du mal pour les cas complexes et python-docx ne semble pas savoir chercher un placeholder sans complexité énorme) ?
EDIT : j’ai tenté une autre idée qui serait de transformer un google doc en HTML (il fait ca mieux que Word) puis d’en faire une vue Django pour m’epargner le souci du HTML (puisque je peux totalement insérer du HTML que le navigateur va rendre proprement) ==> Cependant après divers test je ne trouve aucun moyen de convertir cet HTML en word dans l’autre sens sans perdre une majorité de la mise en page (j’ai testé Pandoc / docverter / des convertisseur en ligne / le réimport direct dans Word en enregistrant en .htm)
Merci à tous