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.
Exemple — Maison Verte SARL Maison Verte souhaite masquer les lignes d'articles dont la quantité est nulle sur ses factures. Depuis le constructeur, elle configure une condition
row.qty > 0sur le répétiteur des articles, et seules les lignes avec une quantité positive apparaissent désormais sur les impressions.
Vous pouvez désormais définir des conditions de ligne pour les sections répétiteurs (ex. : tableau des articles). Ces conditions permettent de filtrer dynamiquement les lignes affichées en fonction de critères spécifiques.
Comment configurer une condition de ligne :
row.qty > 0 ou row.tax_amount > 0 || print_settings.print_taxes_with_zero_amount).Variables disponibles dans l'expression :
doc : le document complet (ex. : une facture).row : la ligne courante du répétiteur (ex. : un article).print_settings : les paramètres d'impression actifs (ex. : print_settings.print_taxes_with_zero_amount).Exemples d'expressions utiles :
row.qty > 0 → Affiche uniquement les lignes avec une quantité positive.row.amount > 100 → Affiche uniquement les lignes dont le montant dépasse 100 €.row.tax_amount > 0 || print_settings.print_taxes_with_zero_amount → Affiche les lignes avec un montant de taxe non nul, ou toutes les lignes si l'option "Imprimer les taxes avec montant nul" est activée.Exemple — Bureau Moderne Bureau Moderne souhaite afficher les informations de livraison (adresse, contact) dans une colonne fusionnée, mais en les organisant verticalement plutôt qu'horizontalement. Depuis le constructeur, il sélectionne la colonne fusionnée et bascule la direction sur Vertical, ce qui aligne les champs les uns sous les autres.
Le constructeur permet désormais de contrôler la direction des colonnes fusionnées (horizontale ou verticale) pour les tableaux répétiteurs.
Comment configurer la direction d'une colonne fusionnée :
Cas d'usage :
Exemple — Tribu SCOP Tribu SCOP souhaite masquer les lignes de taxe dont le montant est nul, sauf si l'option "Imprimer les taxes avec montant nul" est activée dans les paramètres d'impression. Grâce à la nouvelle variable
print_settings, elle configure une conditionrow.tax_amount > 0 || print_settings.print_taxes_with_zero_amountsur le répétiteur des taxes, et le comportement s'adapte dynamiquement aux paramètres sélectionnés.
Les paramètres d'impression (ex. : "Imprimer les taxes avec montant nul", "Impression compacte des articles") sont désormais accessibles dans :
visible_if).Variables disponibles :
print_settings.print_taxes_with_zero_amount : true si l'option est activée.print_settings.compact_item_print : true si l'option "Impression compacte des articles" est activée.print_settings.hide_price_in_print : true si l'option "Masquer les prix" est activée.Exemple d'utilisation dans une condition de ligne :
row.tax_amount > 0 || print_settings.print_taxes_with_zero_amount
Exemple d'utilisation dans une condition de visibilité :
doc.discount_amount > 0 || !print_settings.hide_discount_in_print
Exemple — Maison Verte SARL Maison Verte teste l'option "Impression compacte des articles" dans l'aperçu bêta. Elle active le paramètre, et le tableau des articles se réorganise immédiatement en mode compact. Elle télécharge ensuite le PDF, et le format compact est conservé dans le fichier final.
Les paramètres d'impression (ex. : "Imprimer les taxes avec montant nul", "Impression compacte des articles") sont désormais appliqués de manière cohérente dans :
Comment utiliser cette fonctionnalité :
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 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 : 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.