Impression des PDF avec smarty

Bonsoir,
question existentiel, je développe depuis un temps certain déjà et depuis peu je suis sur Dolibarr pour des besoins perso et je me pose la question du :
Pourquoi la gestion des impressions PDF ne passe pas par smarty et des templates?
Les avantages sont certains, c’est modulaire et peut être plus facilement customisable par madame Michu 2.0.
Ça reste une question ouverte est ne remet aucunement en cause le travail déjà fait par toute la communauté :slight_smile:

Bonjour,

Je ne connais pas smarty mais ça semble un moteur de template PHP comme il en existe d’autres.
Mais j’avoue ne pas voir le lien entre un moteur de template PHP qui sort du HTML et les impressions PDF

En faite, j’utilise Smarty sur des projets où je fais des impression formatées.
A partir d’un squelette HTML et du CSS adapté on arrive très simplement à faire des impressions paramétrables.
Pour ceux qui ne connaissent pas trop, on envoie des variables et constantes au scripte, on peux récupérer aussi des variables PHP.
Là où c’est plus pratique, c’est que le pseudo code est très proche du PHP et on arrive, à coup de template imbriqués, a faire une template facile à surcharger et modifier si besoin.
Si on découpe les impression de Facture et Devis pour faire simple, on est sur 95% de code identique.
Pour terminer, il faut envoyer le résultat à TCPDF pour obtenir le PDF voulu.

Bonjour,

Tant que votre pdf ne fait qu’une page c’est faisable, une fois que vous devez gérer des sauts de page avec répétition d’entêtes et de pied de page comment faîtes vous pour calculer la hauteur des éléments html+css ?

1 « J'aime »

Hello,
@hop ça n’a rien à voir avec le sujet pardon de squatter ici (dredi tout est permis!) mais ton logo me fait plus penser à scream qu’a hop hop hop :smiley:

1 « J'aime »

Perso, je préfère blade (laravel), qui est moins usine à gaz que smarty ou twig et il sera plus simple à mettre en place.

1 « J'aime »

Hello

@dev2a

si tu veux regarde le code de la version en cours de dev de ScanInvoices, j’ai intégré blade + tailwindcss … et je compte bien en faire un « démonstrateur » pour tenter de convaincre les copains du bien fondé de l’idée et pourquoi pas le mutualiser ensuite sur x modules en attendant plus :slight_smile:

@erics On a un peu fait le même travail pour intégrer illuminate dans dolibarr :slight_smile: .
J’ai abandonné l’idée de faire un POC pour montrer les avantage de blade, eloquent et de la validation à partir du moment où eldy a dit que dolibarr était déjà MVC et que ça ne changera pas, car il y a des commentaires dans la page…

1 « J'aime »

@hop Normalment, les CSS gère ces cas maintenant, si on a les bonnes DIV et la bonne conf CSS, il faut partir sur du Flex et avoir le bon paramétrage du media.

@dev2a je n’utilise pas blade mais je suppose que c’est comme twig, je suis pas « raciste » ça pourrait le faire aussi :wink:. L’idée est vraiment de simplifier la gestion des impressions. C’est mon taf, et j’ai mis un peu de temps pour faire la modif de mon template facture et que ça me convienne. Mais je pense honnêtement que ça sera plus user friendly si on arrive à trouver une solution simple, et qui ne soit pas usine à gaz, sous entendu, obliger d’utiliser composer et/ou avoir X dépendances qui réduirait la maintenabilité et augmenterait de ce fait les risques niveau sécurité.

Dans tous les cas, ça ne doit pas être trop hard à implémenter, les pools de data sont disponibles dans la class. Si j’ai du temps à tuer je ferai un POC pour SMARTY, en attendant, je vais regarder ton travail @erics.

Merci à tous pour vos retours

Le problème principal c’est de transformer du HTML en PDF.

TCPDF ne sait traiter que partiellement le CSS, même le CSS 2 n’est pas pris en compte en totalité, vous pouvez oublier tout ce qui est « flex » et autre.
DOMPDF c’est pareil avec un support un peu plus avancé de CSS 2

Il faudrait passer par wkhtlmltopdf ou weasyprint mais le support CSS n’est pas complet non plus. Cela oblige en outre à installer weasyprint ou wkhtmltopdf pour avoir le support du pdf car ce ne sont pas des bibliothèques qu’on peut intégrer dans Dolibarr.

1 « J'aime »

Effectivement, n’ayant pas essayé ce type de balise, j’étais parti du postula qu’elles étaient prise en charge pas TCPDF :cry: .
Merci.