Génération des documents en PDF
Paheko permet de créer des documents en PDF. En interne, cette création est effectuée à partir d'un document HTML. Pour générer les documents PDF vous devez avoir installé un programme sur le serveur (ou une extension) qui convertit le document HTML en PDF.
Paheko permet d'utiliser les solutions suivantes pour générer les PDF :
- DomPDF est une librairie PHP. Elle ne nécessite pas d'avoir un accès administrateur (root) au serveur. Elle est donc la seule solution si vous êtes sur un hébergement mutualisé type OVH. Par contre elle est assez lente, et comporte des bugs, et plante parfois à la génération de certains documents trop longs. Une extension permettant d'installer DomPDF en un clic est fournie avec Paheko.
- Prince est un logiciel propriétaire qui dispose d'une licence d'utilisation gratuite pour un usage non-commercial mais qui ajoutera un petit logo (discret) sur chaque document généré. Il y a aussi des licences payantes. Il est très rapide et léger. C'est ce qui est utilisé sur Paheko.cloud.
- Chromium (sous Debian :
apt install chromium) est la solution libre la plus rapide. - wkhtmltopdf a pas mal de bugs, n'est plus maintenu, et est assez lent et lourd.
- weasyprint est plus fidèle, mais est très lent et plante souvent.
Nous conseillons Prince, qui est le plus léger, le plus rapide, et qui propose le meilleur rendu. Les autres peuvent avoir des problèmes de rendu (bugs), dû au fait qu'ils n'ont pas été conçus pour faire du média papier en premier lieu. Chromium représente le meilleur choix libre.
La génération de PDF dans Paheko n'est testée au développement que dans Prince et Chromium. Les autres programmes peuvent générer des erreurs de rendu.
DomPDF notamment peut présenter des bugs. Ceux-ci ne sont pas dûs à Paheko mais à DomPDF. DomPDF n'est fourni que comme facilité pour les associations qui ne disposent pas d'accès root sur leur serveur. Merci de ne pas remonter de bugs sur DomPDF.
Détection et configuration.
Par défaut, Paheko essaye de détecter si une de ces solutions est installée, dans l'ordre suivant :
- DomPDF
- Prince
- Chromium
- wkhtmltopdf
- weasyprint
Si aucun programme n'est trouvé, Paheko affichera le message d'erreur suivant :
Aucun programme de création de PDF trouvé, merci d'en installer un.
Si vous disposez d'un autre programme de création de PDF, vous pouvez personnaliser la constante PDF_COMMAND dans config.local.php.
C'est aussi conseillé de manière générale si vous faites beaucoup de génération de PDF, car cela évitera l'étape de détection de programme de conversion HTML vers PDF, qui est un peu coûteuse (ouvre jusqu'à 4 process).
Exemple :
const PDF_COMMAND = 'chromium';
Note : si l'extension DomPDF est installée et activée, elle sera appelée dans tous les cas, quelle que soit la configuration de PDF_COMMAND.
Remarque pour Windows
La recherche de programmes externes ne fonctionne pas ; il faut donc impérativement positionner la constante PDF_COMMAND comme indiqué ci-dessus ; de plus, il faut ajouter le chemin complet vers cette commande dans la variable path système (et pas celle de l'utilisateur) puis redémarrer le PC.