-
[PDF] Pdf from template
Bonjour,
En temps normal, j'utilise php avec FPDF pour générer différents documents comme des factures. Sauf que j'ai l'impression d'être arrivé à la limite.
Voici le problème : régulièrement le client (ici client interne) demande à faire évoluer la mise en page des documents (ajout d'un logo, modification de la police...).
A chaque fois, il est nécessaire de modifier le code pour prendre en considération ces évolutions. Après la modification du core, il faut ajouter les différentes phases : Code Review, Preprod, Test, Mise En Prod, ect.
Bref, beaucoup de travail pour simplement souligner le titre d'un document :-).
Il doit être possible de faire mieux.
L'idée :
Avoir un document "template" au format docx ou odt.
Document qui contiendrait des #balises correspondantes aux variables à remplacer. Par ex. pour une facture un balise #totalAmount.
Ce document serait chargé en Php, les balises remplacées et le pdf serait généré.
Ce qui permettrait de laisser au "client" un accès au template (après une petite formation) afin qu'il puisse librement faire évoluer sa mise en page.
J'ai trouvé quelques pluggin php mais qui parlent plus de template html, donc pas vraiment intéressant.
Quelqu'un a-t-il déjà travaillé sur ce type de problématique ?
Si oui, qu'elle solution avez-vous mis en oeuvre et quel en est le retour sur expérience ?
Pour info, j'utilise composer dans l'application.
Bien à vous,
LeGnome
-
Un document docx n’est rien d’autre qu’un fichier .zip qui contient des fichiers xml éparpillés dans plusieurs répertoires. Donc mettre un #quelquechose et le remplacer comme ça il faut oublier.
Il est possible ensuite de faire le remplacement après avoir dézippé le fichier .zip et l’avoir rezippé. Mais attention. Si par exemple tu appliques un style (gras, italique, etc..) il faut faire attention à comment il a été appliqué en une seule fois en plusieurs ? Car même si visuellement tu as ce que tu veux, au niveau du fichier c’est autre chose.
Imaginons que tu doives remplacer #nom_du_proprietaire en gras. Si tu as appliqué correctement le style tu auras une ligne du genre <tag>#nom_du_proprietaire</tag> dans le fichier xml et c’est ok. Mais si tu l’as mal appliqué tu auras par exemple <tag>#nom_</tag><tag>du_proprietaire</tag> et là bonjour !
j’ai mis <tag> pour rendre l’idée mais c’est plus plus compliqué en réalité.
-
Une Librairie ?
Bonjour Bazade,
Tout d'abord, merci pour ton retour.
Il est évident que faire un remplacement "à la main" dans un fichier docx n'est vraiment pas une bonne idée. C'est bien ce que j'ai pressenti.
C'est pour cette raison que je cherche une librairie qui le gère déjà, que se soit à partir d'un docx ou d'un odt.
Le but de la librairie est d'une part de ne pas réinventer la roue, mais surtout une gestion correcte et maintenue à jour.
Je me suis renseigné autour de phpdocx qui permet de générer du docx en php. Il est possible de générer un document "from scratch" ou bien à partir d'un template.
Cette solution est, aujourd'hui, celle qui se rapproche le plus du besoin. De plus, il est possible de la maintenir à jour avec Composer (ce qui n'est pas négligeable).
Cependant, il y a un inconvénient rédhibitoire dans mon cas : la nécessité d'installer Microsoft Office sur le serveur pour pouvoir convertir en pdf.
Connaissez-vous une autre solution qui ne nécessite pas ce type d'installation sur le serveur ?
Merci,
LeGnome
-
Je suis exactement dans la même situation avec la même problématique de documents à modifier/générer de façon récurrente.
Je pensais m'orienter vers un éditeur wysiwyg mais ils ne sont vraiment pas fait pour du print en sortie.
Qu'as tu utilisé comme solution de ton coté ?