Retour d'expérience : www.forum-foceen.fr (partie 2)

Créé le 21/10/2013

Dernière mise à jour le 19/03/2014

Cette partie du retour d'expérience est consacrée à la génération de pdf sur le site www.forum-foceen.fr. Cet article a été écrit conjointement avec Julien Enselme, acteur principal sur cette fonctionnalité.

La génération de facture, bon de commande, autre document envoyé par mail ou disponible en téléchargement est un besoin fréquent, voir indispensable pour les sites e-commerce.

Laissons de côté le côté envoie par mail, et concentrons nous sur la génération de pdf.

Il existe une multitude de modules permettant la génération de facture :

Chacun avec une approche plus ou moins différente, laissant plus ou moins de liberté de personnalisation. Je dois avouer que d'avoir une telle diversité de modules, c'est à la fois bon pour la variété d'approches, mais pour s'emmêler les pinceaux, c'est aussi assez bon.

La solution retenue ne passe par aucun de ces modules !

Enfin presque, Commerce PDF Invoice s'appuie sur le module Views PDF qui permet de générer des PDF à partir de Views donc côté liberté de personnalisation, c'est très bien positionné. Sauf que, pour résumer, Commerce PDF Invoice ne fait que rajouter 2 vues configurées pour la génération de facture, donc autant utiliser Commerce PDF Invoice pour voir comment configurer ses propres vues et ainsi éviter d'avoir un module supplémentaire à gérer en production.

Réalisation

Avec la version 1.0 de Views PDF, l'interface était assez mal designée, il était facile de rater des options comme la taille de la police (dont la valeur par défaut n'était pas prise ne compte ce qui à ma surprise générait des pdf blancs et m’a demandé beaucoup de temps de débug). La version 1.1 du module a grandement amélioré cette interface qui est beaucoup plus pratique d'utilisation et corrige le problème avec les polices par défaut.

Principe

  • Réalisez un template au format PDF qui servira de fond sur lequel les informations dynamiques seront ajoutées par Views. Typiquement sur ce template seront mis le logo du site/de la société, les informations communes à toutes les factures, etc.
  • une fois ce template réalisé, demandez à la vue de l'utiliser (il peut servir à plusieurs vues),
  • utilisez Views comme d'habitude, sauf que ce sera affiché sur un PDF,
  • l'affichage des informations sur la page peut se faire :
    • de manière relative par rapport à de nombreux choix, par rapport à la page, par rapport à un autre champ, etc.
    • de manière absolue en précisant hauteur et largeur, ce qui est assez long et fastidieux à faire, mais si un élément doit être affiché à un endroit précis, ça répond bien au besoin.

Une particularité, s'agissant de facture/bon de commande, l'affichage des éléments de la commande se faisant d'une autre manière, il faut jouer sur l'inclusion d'autres vues (module inclus dans le projet Views PDF), dans la vue finale et à faire en sorte que les vues incluses utilisent le même template.

La difficulté de cette fonctionnalité vient du fait que l'interface de Views PDF est assez complexe à prendre en main (moins depuis son amélioration) et du fait que le module a encore quelques imperfection, comme la duplication des valeurs des vues incluses, et il faut jouer avec l'affichage et les options pour faire abstraction du problème.

Conclusion

Views PDF est un module complexe à prendre en main, nécessitant quelques librairies, mais extrêmement puissant car ne se limitant pas à la génération de pdf dans un contexte e-commerce.

Voir la partie 1 de ce retour d'expérience.

Commentaires

Soumis par ftorregrosa le ven, 03/20/2015 - 14:01 - Permalien

J'ai pu me replonger récemment dans Views PDF avec la génération de carte adhérent en ligne pour le site drupalfr.org et en effet, c'est beaucoup plus simple.

Ajouter un commentaire