Récemment j'avais un projet qui semble pourtant simple au premier abord : mon client voulait générer des fichiers PDFs. Le use-case est le plus bête de la terre, l'utilisateur rempli un (assez long) formulaire, et suivant les réponses on lui génère 5-6 fichiers PDFs dans un répertoire.

Je pensais qu'il s'agirait d'un projet simple et j'avais tort. Il n'existe pas d'éditeur de templates réellement utile pour ce cas. Le client m'a envoyé ses exemples de fichiers en format word, et il fallait les remplir et les générer en PDF, sauf que les systèmes que j'ai étudiés (iText, FOP, jasper) nécessitaient tous de re-saisir intégralement le layout des fichiers du client, aucun ne permettaient de simplement importer le fichier word, insérer des "trous" dedans et de l'envoyer à java. Il est possible dans des cas limités de remplir des champs de formulaires dans un PDF, mais ce cas ne permet pas de "reflow" du document, ce dont j'avais besoin.

Au final, j'ai donc choisi d'utiliser un connecteur OpenOffice.org (j'ai converti les .doc en .odf à "trous"), un choix de développeur plus que d'utilisateur, car il simplifiait ma vie de développeur, mais livre un système lent et tendant à crasher à l'utilisateur (il ne voit jamais l'interface d'OpenOffice.ord lors de l'opération). Étant donné le contexte économique entourant le projet, cela je pense que c'était la décision la moins pire, mais clairement je suis frustré de livrer ce type de système.

D'où mon appel : il manque un outil de ce type pour java, peut-être "simplement" un moyen d'exporter des fichiers compris par FOP ou iText ou Jasper depuis OpenOffice.org, mais clairement il manque un maillon entre le .doc du client et le template du développeur.