Exemple — Bureau Moderne Le responsable administratif de Bureau Moderne souhaite créer un format de bon de commande avec le logo en en-tête, les colonnes articles à gauche et le total à droite. Il ouvre le constructeur, glisse les champs dans les sections, ajuste l'alignement des colonnes depuis l'onglet latéral et enregistre avec Ctrl+S — sans écrire une seule ligne de HTML.
Le constructeur de format d'impression (Print Format Builder) est un éditeur visuel intégré à Dokos qui permet de créer et modifier des formats d'impression sans connaissance technique. Il est accessible depuis le formulaire d'un Format d'impression en activant le mode constructeur.
Depuis la version 16 de Dokos, le constructeur moderne est le seul éditeur disponible pour créer et modifier des formats d'impression. Le constructeur classique a été définitivement retiré.
| Fonctionnalité | Constructeur moderne | Constructeur classique (retiré) |
|---|---|---|
| Moteur PDF | Chrome (par défaut) | WKHTMLTOPDF |
| Répétition en-tête/pied | Oui (toutes les pages) | Non |
| Gestion des sauts de page | Optimisée | Basique |
| Personnalisation CSS | Avancée | Limitée |
| Nouveaux blocs | Image, Code-barres | Non |
| Visibilité conditionnelle | Oui | Non |
| Sélecteur de police | Oui | Non |
classic_format_data pour permettre un retour en arrière si nécessaire.Exemple — Maison Verte SARL Le comptable de Maison Verte SARL modifie le format d'impression de ses factures pour ajouter un champ personnalisé "Conditions de paiement". Il ajuste la position du champ dans le constructeur et voit immédiatement le résultat dans la prévisualisation, sans avoir besoin d'enregistrer le format. Une fois satisfait du rendu, il enregistre ses modifications en un clic.
Le constructeur de format d'impression propose désormais une prévisualisation en temps réel des modifications non sauvegardées. Cette fonctionnalité permet de voir le rendu final de votre document avant même de l'enregistrer, éliminant ainsi les allers-retours entre édition et prévisualisation.
Fonctionnement :
get_formatted, assurant que les données affichées (montants formatés, liens, valeurs de champs enfants) sont identiques à celles du document imprimé.Comment l'utiliser :
Exemple — Maison Verte SARL Maison Verte SARL souhaite ajouter son logo et un QR code contenant le lien vers sa facture en ligne sur ses impressions. Depuis le constructeur, elle ajoute un bloc Image pour le logo et un bloc Code-barres configuré avec le champ
nameet le format QR. Les deux éléments sont désormais intégrés à toutes ses factures PDF.
Le constructeur propose désormais deux nouveaux blocs pour enrichir vos documents :
Comment les utiliser :
Exemple — Maison Verte SARL Maison Verte SARL souhaite que les étiquettes des champs sur ses factures soient en bleu foncé et les valeurs en gris anthracite. Depuis le constructeur, elle sélectionne les couleurs directement via un sélecteur visuel et applique le style à l'ensemble du format — sans écrire de CSS.
Le constructeur permet désormais de personnaliser les couleurs des éléments clés de vos documents :
Comment configurer les couleurs :
Exemple — Maison Verte SARL Maison Verte SARL souhaite que ses factures imprimées présentent un tableau des articles avec des bordures visibles, un espacement entre les cellules et des en-têtes de colonne personnalisés. Depuis le constructeur, elle active le mode "Disposition tableau", ajuste le rembourrage des cellules, définit un rayon de bordure et choisit un style d'en-tête "Coloré" — le tout sans écrire de CSS.
Le constructeur permet de personnaliser finement l'apparence des tableaux :
Comment configurer les styles de tableau :
Exemple — Maison Verte SARL Maison Verte SARL souhaite ajouter un espacement uniforme autour de l'en-tête de ses factures. Depuis le constructeur, elle ajuste les marges supérieure, inférieure, gauche et droite de la section d'en-tête à 15 pixels chacune, et prévisualise immédiatement le résultat.
Le constructeur permet de contrôler précisément les marges des sections :
Comment configurer les marges :
Exemple — Maison Verte SARL Maison Verte SARL souhaite masquer le champ "Remise spéciale" sur les factures dont le montant total est inférieur à 100 €. Grâce à la visibilité conditionnelle, elle configure une règle
doc.total < 100sur le champ, et celui-ci n'apparaît plus sur les impressions concernées.
Vous pouvez définir des règles de visibilité conditionnelle pour masquer dynamiquement des éléments :
Comment configurer la visibilité conditionnelle :
doc.statut === "Payé").Exemples d'expressions utiles :
doc.total > 1000 → Affiche le champ uniquement si le montant total dépasse 1000 €.doc.items.length > 5 → Affiche la section uniquement si le document contient plus de 5 articles.doc.custom_field === "VIP" → Affiche le champ uniquement pour les clients VIP.Exemple — Bureau Moderne Bureau Moderne souhaite réduire l'espacement entre les étiquettes et les valeurs sur ses bons de commande. Depuis le constructeur, il ajuste l'espacement à 5 pixels et enregistre le format — le changement est immédiat.
Pour les champs en orientation Étiquette à gauche / Valeur à droite, vous pouvez contrôler l'espacement horizontal :
Exemple — Bureau Moderne Bureau Moderne souhaite masquer le titre "Articles" au-dessus du tableau des articles sur ses bons de commande. Depuis le constructeur, il désactive l'option Afficher le titre et enregistre le format — le titre disparaît immédiatement.
Vous pouvez contrôler l'affichage du titre des sections répétiteurs :
Exemple — Maison Verte SARL Maison Verte souhaite appliquer un style personnalisé à la section "Total" (fond gris clair, texte en gras), utiliser la police "Roboto", et masquer le titre "Articles". Depuis le constructeur, elle configure ces options en quelques clics :
- Sélectionne la section "Total" et saisit
background: #f5f5f5; font-weight: bold;dans Style personnalisé.- Ouvre l'onglet Format et choisit "Roboto" dans le sélecteur Police.
- Sélectionne la section répétiteur et désactive Afficher le titre.
Le constructeur intègre trois fonctionnalités majeures :
Comment utiliser ces fonctionnalités :
Le constructeur inclut plusieurs améliorations ergonomiques :
Exemple — Maison Verte SARL Maison Verte souhaite que son en-tête de lettre (logo + adresse) apparaisse sur chaque page de ses factures PDF. Depuis les Paramètres d'impression, elle active l'option Répéter l'en-tête et le pied de page sur toutes les pages, et l'en-tête s'affiche désormais sur chaque page du PDF généré.
Le constructeur moderne permet de répéter l'en-tête et le pied de page sur toutes les pages d'un document PDF, que ce soit via le navigateur ou lors de la génération d'un PDF téléchargeable.
Comment activer la répétition :
Exemple — Bureau Moderne Bureau Moderne souhaite que ses étiquettes de champ affichent un deux-points après le libellé (ex. : "Montant total : 100 €"). Depuis les Paramètres d'impression, il active l'option Afficher un deux-points après les étiquettes, et le changement s'applique immédiatement à tous les formats d'impression.
Vous pouvez configurer l'affichage d'un deux-points après chaque étiquette de champ :
Exemple — Tribu SCOP Tribu SCOP souhaite que ses devis en statut "Brouillon" affichent clairement ce statut sur les impressions. Avec le constructeur moderne, une bannière "BROUILLON" apparaît automatiquement en haut de chaque page du PDF lorsque le document n'est pas soumis.
Le constructeur moderne affiche automatiquement une bannière BROUILLON ou ANNULÉ en haut des documents imprimés lorsque le document est dans l'un de ces statuts. Cette bannière est visible dans l'aperçu et sur le PDF généré.
Fonctionnement :
Exemple — Maison Verte SARL Maison Verte utilise un modèle de facture avec plusieurs colonnes optionnelles (ex. : "Remise", "Numéro de lot"). Avec le constructeur moderne, les colonnes vides n'apparaissent plus sur les impressions, ce qui rend le tableau plus lisible et compact.
Le constructeur moderne supprime automatiquement les colonnes vides dans les tableaux répétiteurs (ex. : tableau des articles) lors de la génération du PDF. Une colonne est considérée comme vide si toutes ses cellules sont vides pour toutes les lignes du tableau.
Fonctionnement :
Lors de la mise à jour vers Dokos v16, tous les formats d'impression créés avec le constructeur classique sont automatiquement migrés vers le constructeur moderne. Ce processus :
classic_format_data du format d'impression.classic_format_data.bench migrate. Elle ne nécessite aucune intervention manuelle.Après la migration, il est recommandé de vérifier que vos formats d'impression s'affichent correctement :
Si vous rencontrez des problèmes avec un format spécifique, vous pouvez :
classic_format_data dans le champ format_data.Certaines fonctionnalités du constructeur classique ne sont pas directement transposables dans le constructeur moderne :
Le constructeur moderne utilise le moteur Chrome pour générer les PDF, ce qui offre une meilleure compatibilité avec les standards web modernes. Voici quelques bonnes pratiques pour optimiser vos formats :
em, rem ou % plutôt que px pour les tailles de police et les espacements.position: absolute.Pour les documents qui s'étendent sur plusieurs pages :
Pour aller plus loin dans la personnalisation :
Symptôme : Les éléments ne s'affichent pas comme prévu dans le PDF.
Solutions possibles :
Symptôme : La prévisualisation ne reflète pas les modifications ou affiche des erreurs.
Solutions possibles :
get_formatted fonctionne correctement.Symptôme : Un format migré ne s'affiche pas correctement.
Solutions possibles :
classic_format_data et recréez-le manuellement.Symptôme : La génération du PDF est lente ou échoue.
Solutions possibles :
Non. Le constructeur classique a été définitivement retiré dans Dokos v16. Tous les formats d'impression doivent désormais être créés ou modifiés avec le constructeur moderne.
La migration est automatique lors de la mise à jour vers Dokos v16. Si vous avez besoin de migrer un format manuellement :
Oui. Le format original est conservé dans le champ classic_format_data du format d'impression. Pour le restaurer :
classic_format_data dans le champ format_data.Plusieurs raisons possibles :
Pour résoudre ce problème :
Utilisez les nouveaux blocs Image et Code-barres dans le constructeur :
Oui. Le constructeur moderne offre plusieurs options pour personnaliser les tableaux :
Utilisez la visibilité conditionnelle dans le constructeur :
doc.total > 100).Oui. Le constructeur moderne propose un sélecteur de police avec les polices standard et les Google Fonts intégrées à Dokos. Pour utiliser une police personnalisée :
Pour ajouter une police personnalisée non disponible dans le sélecteur, vous devrez l'ajouter manuellement via CSS dans le champ Style personnalisé de l'en-tête de lettre ou du format d'impression.
Activez l'option Répéter l'en-tête et le pied de page sur toutes les pages dans les Paramètres d'impression :
Oui. Le constructeur moderne peut être utilisé pour modifier à la fois les formats Standard et Personnalisés. Cependant, les formats Standard sont généralement fournis par les applications et peuvent être écrasés lors des mises à jour. Pour éviter cela :
Le constructeur moderne ne propose pas d'option directe pour ajouter des sauts de page. Cependant, vous pouvez utiliser le champ Style personnalisé pour forcer un saut de page :
page-break-before: always;
break-before: page.Oui. La prévisualisation en temps réel prend en charge tous les types de champs, y compris :
Les valeurs sont récupérées directement depuis le serveur via l'endpoint get_formatted, garantissant une parfaite cohérence avec le rendu final.
Oui. La prévisualisation en temps réel fonctionne même pour les formats qui n'ont jamais été enregistrés. Vous pouvez créer un nouveau format d'impression, l'éditer dans le constructeur et voir le rendu en temps réel avant de l'enregistrer pour la première fois.
Si la prévisualisation affiche une erreur (ex. : "Could not generate preview"), voici les étapes à suivre :
Non. La prévisualisation en temps réel est une fonctionnalité exclusive du constructeur moderne. Les formats classiques ne bénéficient pas de cette fonctionnalité et doivent être migrés vers le constructeur moderne pour en profiter.
Oui. La prévisualisation en temps réel est un outil puissant pour déboguer vos formats d'impression :
Pour déboguer un format :