J’ai mis en place une publication sur un de nos objet qui se base sur un fichier de template.
Si dans la publication je met le type de sortie “pdf” le fichier généré est vide.
Si je met le type de sortie a “html” alors j’obtiens une page correspondant à mon template.
Existe-t-il une manière de créer une publication avec un fichier de template qui permet de générer un PDF ?
J’ai bien lu les thread sur ce forum qui préconise de passer par une méthode java ou un rendu html puis une impression via le browser pour obtenir un PDF.
Mais le fait que ce choix de sortie soit disponible quand un template est renseigné et qu’un pdf ( vide ) soit généré me laisse penser qu’il y a peut-être une possibilité de passer par un template pour avoir directement un pdf.
Une publication PDF est nécessairement implémentée sous forme de code Java “au kilomètre” en utilisant les libs tierces embarquées iText ou PDFBox
Le “templating” sur modèle ne fonctionne qu’avec des formats texte ((X)HTML, Markdown, etc.).
Nous n’avons à ce stade trouvé aucune lib Java magique (et raisonnable) qui transforme du HTML (ou autre format texte) dans un PDF correct, si vous en avez une à suggérer on est preneur.
Dans la lib Docx4j il y a un convertisseur “best effort” qui arrive à transformer du XHTML bien formatté en document Word XLSX, peut être y-t-il moyen d’arriver à du PDF en creusant de ce coté, mais je ne sais pas faire => cf. la doc Docx4j… mais ça restera un truc “lourd” et “fragile” qui marchera moyennement
Personnellement j’évite aujourd’hui toujours les publications PDF dont la mise au point est toujours fastidieuse et chronophage et je fais plutôt du templating HTML avec des styles dédiés à l’impression. Le rendu est souvent largement aussi satisfaisant qu’un PDF.
Il y a des exemples de publication PDF “au km” (le reçu des commandes) et de publication HTML sur template basique dans la démo (catalogue des produits).
PS: De mémoire @Simon a utilisé un produit externe à Simplicité pour ce genre de choses (conversion HTML => PDF), je le laisse vous décrire sa solution.
Tous les essais que j’ai réalisé sur la publication PDF sont synthétisés ici: PDF Publication
Actuellement ma méthode de prédilection est la dernière qui utilise effectivement une instance wkhtml2pdf pour effectuer le rendu, et donne à ce jour les meilleurs résultats.
D’autres voies que celles présentées restent à tester :
la librairie présentée par David
faire du HTML => DOCX => PDF avec docx4j, librairie déjà présente dans Simplicité
Nous allons poursuivre les tests de cette lib. Nous ne savons pas encore où en sont les limites mais pour du HTML relativement “simple” ça marche plutôt pas mal.
En fonction de ces tests, nous déciderons ou non de backporter cette évolution en 5.1 (la BETA actuelle) voire peut être en 5.0 (la RELEASE actuelle)