J’ai fait un test sur la démo (disponible aujourd’hui uniquement), et le SVG s’affiche correctement en prévisualisation et à l’impression PDF.
=> Sélectionnez bien l’en-tête Test
Le problème vient peut être du fait que l’image téléversée est privée ?
Il faut que les images utilisées dans les impressions soient publiques, sinon le mécanisme d’impression n’y a pas accès.
En effet style="width: 100%;" corrige le problème de centrage dans l’aperçu.
Mais lors du clic sur le bouton PDF, le logo n’apparaît toujours pas, et la mise en forme du document est dégradée.
Par exemple : toutes les coordonnées du client s’affichent sur une seule colonne à gauche du document, alors que dans l’aperçu elles sont sur 3 colonnes. Les cellules du tableau des articles sont séparées par une marge de quelques pixels alors que dans l’aperçu elles sont collées.
Ce problème est sur tous les documents, que je mette un entête ou pas.
J’ai déployé dokos via docker derrière un proxy Traefik.
L’image est bien publique, le nom du fichier est avec des “_” sans espace ni caractère spécial.
Je vois que sur la base de démo tout fonctionne bien. Je dois avoir un problème dans ma configuration.
Est-ce qu’il y a un moyen de regénérer le CSS ou reconstruire la mise en forme des documents ?
Effectivement il doit manquer une ligne de configuration dans le fichier bench/sites/frontend/site_config.json qui est situé à l’intérieur des conteneurs, et ça n’a pas été documenté.
La ligne de commande à effectuer sur le serveur pour corriger dans le conteneur.
Tu peux ensuite revoir la configuration avec la commande :
docker exec dokos-backend-1 bench show-config
Si ça ne fonctionne toujours pas avec « http://localhost:8080 », il faudra peut-être utiliser plutôt la vraie URL de ton site « https://mon-site.example.com » mais je pense que ça ne sera pas utile pour vérifier que l’impression fonctionne.
Explications
Le fichier site_config.json contient la configuration du site.
La clé de configuration host_name permet d’informer le site de son identité externe : c’est le host_name qui est utilisé pour générer les URLs complètes des liens dans les e-mails envoyés, et aussi les URLs complètes des fichiers pour le moteur d’impression.
En effet, le moteur d’impression réalise l’impression en PDF en s’imprimant “soi-même” comme s’il était un navigateur web : donc le host_name doit être défini sinon c’est http://frontend/ qui est utilisé par défaut et ça ne fonctionne pas.
En effet j’avais un caractère “~” à la fin de la clé de configuration host_name du fichier bench/sites/frontend/site_config.jsondans mon environnement de test.