Fichier vide pour une publication au format PDF

Bonjour,

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.

Merci par avance pour vos réponses

Ci-dessous les configurations utilisées.

Le template en question :

La publication associée :

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.

PS du PS: je suis en train d’essayer la lib suivante: GitHub - danfickle/openhtmltopdf: An HTML to PDF library for the JVM. Based on Flying Saucer and Apache PDF-BOX 2. With SVG image support. Now also with accessible PDF support (WCAG, Section 508, PDF/UA)!
Je vous tiendrai au courant. Si les tests sont satisfaisants on l’intégrera.

Bonjour,

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é

Pour info, nous avons commencé à intégrer (en 5.2 (la ALPHA actuelle) uniquement pour le moment) la lib openhtmltopdf sous forme d’une classe helper expérimentale HTMLToPDFTool (https://docs.simplicite.io/5/javadoc-alpha/com/simplicite/util/tools/HTMLToPDFTool.html) encore assez basique mais déjà utilisable dans les publications

Exemple de paramétrage: GitHub - simplicitesoftware/module-htmltopdf: HTML to PDF examples module

En particulier:

Exemple d’utilisation:

Avec ces données:


Le résultat de la publication est ce PDF:

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)

1 Like