Au-delà des formats d'impression classiques, Dokos offre plusieurs fonctionnalités d'édition avancées : l'ajout de pages de couverture en première et dernière page d'un PDF, la génération de courriers formatés avec en-tête, et la personnalisation du style visuel des impressions grâce à un champ CSS dédié. Ces outils permettent de produire des documents professionnels sans sortir de Dokos.
Exemple — Cabinet Veraison Le cabinet Veraison envoie ses propositions commerciales en PDF. Il a configuré une page de couverture avec le logo du cabinet et une page de quatrième de couverture avec les mentions légales. Chaque devis généré depuis Dokos inclut automatiquement ces deux pages, sans manipulation manuelle dans un éditeur PDF externe.
Un format d'impression dans Dokos peut être associé à une page de couverture en début de document et à une page de quatrième de couverture en fin de document. Chaque page de couverture est un fichier PDF préalablement téléchargé dans Dokos et configuré depuis le formulaire Page de couverture.
Une fois les pages de couverture rattachées à un format d'impression, elles s'ajoutent automatiquement à chaque génération PDF — que ce soit depuis le bouton Imprimer, lors d'un envoi par email, ou par le biais d'une automatisation.
Exemple — Tribu SCOP L'équipe de Tribu SCOP rédige un courrier d'accompagnement pour un appel d'offres directement dans Dokos, sélectionne l'en-tête de la société et génère un PDF prêt à l'envoi en un clic, sans passer par un traitement de texte.
Dokos permet de générer un courrier en PDF à partir d'un contenu HTML et d'un en-tête de lettre existant. Le résultat est un document PDF mis en page avec les coordonnées et le logo de la société, téléchargeable immédiatement ou joint automatiquement à un document.
Cette fonctionnalité est disponible depuis les contextes qui proposent la génération de courriers — par exemple lors de l'envoi d'une communication formelle associée à un dossier.
Voir l'en-tête de lettre dans la démoExemple — Maison Verte SARL Maison Verte SARL souhaite que ses factures imprimées affichent le nom du client en vert et utilisent une police spécifique pour les titres. L'équipe administrative saisit directement les règles CSS dans le champ prévu sur l'en-tête de lettre, sans toucher au HTML ni faire appel à un développeur.
L'en-tête de lettre dispose d'un champ CSS personnalisé dédié. Les règles de style saisies dans ce champ sont automatiquement appliquées lors de l'impression d'un document (format d'impression) et lors de la génération de rapports associés à cet en-tête.
Ce champ remplace l'ancienne pratique qui consistait à glisser des balises <style> à l'intérieur des champs HTML de l'en-tête — une méthode qui posait des problèmes de sécurité et de maintenabilité.
/* Exemple : couleur de l'en-tête de tableau et police globale */
body {
font-family: 'Arial', sans-serif;
font-size: 12px;
}
th {
background-color: #2e7d32;
color: #ffffff;
}
.print-heading {
font-size: 18px;
font-weight: bold;
}
Voir l'en-tête de lettre dans la démoBon à savoir : le CSS saisi ici s'applique à toutes les impressions utilisant cet en-tête de lettre, qu'il s'agisse d'un document (facture, devis, bon de commande…) ou d'un rapport imprimé.
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.
Dokos propose désormais deux modes de construction :
| Mode | Quand l'utiliser | Moteur PDF |
|---|---|---|
| Constructeur moderne (défaut) | Créer un nouveau format ou modifier un format moderne | Chrome |
| Constructeur classique | Modifier un format d'impression créé avec l'ancien outil jQuery | WKHTMLTOPDF ou Chrome |
Le constructeur moderne est le mode par défaut pour toute nouvelle création. Il produit des PDF avec répétition de l'en-tête sur chaque page, gestion précise des sauts de ligne dans les tableaux, et rendu fidèle au navigateur.
Le constructeur classique reste accessible uniquement pour éditer des formats existants créés avec l'ancienne interface. Si vous ouvrez la route /print-format-builder-classic sans sélectionner de document, vous êtes automatiquement redirigé vers le constructeur moderne.
L'interface se compose de quatre zones principales :
Le canevas est divisé en trois zones distinctes, clairement délimitées par des séparateurs visuels :
Chaque section affiche un badge indiquant à quelle zone elle appartient. Vous pouvez faire glisser les sections d'une zone à une autre directement dans le canevas.
Les sections structurent votre format d'impression. Chaque section peut contenir une ou plusieurs colonnes.
Ajouter une section :
Déplacer une section :
Configurer une section : Cliquez sur une section pour la sélectionner (un contour bleu l'encadre). Le panneau inspecteur à droite affiche ses paramètres, organisés en onglets :
| Onglet | Contenu |
|---|---|
| Style | Nombre de colonnes, espacement, rembourrage (padding/gap éditables directement), couleur de fond |
| Format | Casse des libellés (Normale / Majuscules), affichage du titre de section |
| Disposition | Saut de page avant cette section, orientation |
Navigation rapide : lorsqu'un champ est sélectionné à l'intérieur d'une section, un fil d'Ariane s'affiche en haut du panneau inspecteur. Cliquez dessus ou appuyez sur Échap pour remonter à la sélection de la section parente.
Casse des libellés : Depuis l'onglet Format du panneau inspecteur, vous pouvez choisir si les libellés de champs dans cette section s'affichent en casse normale ou en majuscules. Ce réglage s'applique à tous les libellés de la section, y compris le titre.
Chaque section multi-colonnes propose un bouton d'alignement pour choisir comment les colonnes se répartissent horizontalement :
Pour supprimer une colonne vide dans une section multi-colonnes, un bouton dédié Supprimer la colonne vide est disponible directement dans la section.
Dans l'onglet Champs de la barre latérale, chaque champ affiche son type (texte, date, montant, tableau…) sous forme de badge. Deux façons d'ajouter un champ :
Une icône + apparaît au survol de chaque liste de champs dans une colonne pour ajouter un champ à un emplacement précis.
Aperçu en mode données réelles : En chargeant un document existant dans le constructeur, le canevas bascule en mode aperçu propre : les données réelles du document remplacent les libellés de champs, et les éléments de l'interface de construction (poignées, boutons d'ajout) se masquent pour un rendu fidèle à l'impression. Les sections sélectionnées et les sauts de page restent visibles en superposition légère.
Les champs de type HTML disposent d'un éditeur dédié dans le panneau inspecteur. Cliquez sur le champ HTML dans le canevas pour ouvrir un éditeur HTML en panneau divisé (split-pane) : le code s'édite à gauche et un aperçu en direct s'affiche à droite. Le contenu Jinja2 (variables {{ doc.field }}, boucles…) est rendu en temps réel dans l'aperçu.
Les champs de type tableau (lignes de commande, lignes de facture…) disposent d'une interface dédiée dans le constructeur. Vous pouvez :
La boîte de dialogue Configurer les colonnes s'ouvre depuis le champ tableau dans la zone de construction.
Les colonnes de type image sont rendues comme de vraies images dans le PDF — les photos de produits et illustrations apparaissent correctement, sans afficher l'URL brute.
Les valeurs de type Oui/Non (champs à cocher) s'affichent sous forme de texte « Oui » ou « Non » dans l'impression, pour une meilleure lisibilité dans les PDF.
Depuis le panneau inspecteur, en cliquant sur la zone d'en-tête ou de pied de page dans le canevas, vous accédez aux contrôles de l'en-tête de lettre :
Le choix est conservé lors des enregistrements et rechargements.
Utilisez le raccourci clavier Ctrl+S (ou Cmd+S sur Mac) pour enregistrer le format d'impression à tout moment sans quitter la zone de construction. Une notification confirme l'enregistrement.
Les formats créés avec le constructeur moderne utilisent automatiquement le moteur Chrome pour la génération PDF, ce qui garantit :
Dokos utilise un moteur de rendu pour transformer vos documents en PDF. Deux moteurs sont disponibles, avec des comportements différents en matière de mise en page, de CSS supporté et de gestion des sauts de page.
WKHTMLTOPDF est le moteur historique, basé sur une version ancienne du moteur WebKit. Il est installé automatiquement avec Dokos et ne nécessite aucune configuration particulière.
Limitations connues :
Depuis Dokos v5, un deuxième moteur basé sur Chromium (le moteur de Google Chrome) est disponible. Il offre un rendu fidèle aux standards web actuels et résout la plupart des problèmes de mise en page rencontrés avec WKHTMLTOPDF.
Avantages :
Prérequis : Chromium (~150 Mo) est téléchargé automatiquement à l'activation.
| Fonctionnalité | WKHTMLTOPDF | Chrome |
|---|---|---|
| Installé par défaut | Oui | Non |
| CSS Grid | Non | Oui |
| Flexbox complet | Partiel | Oui |
| Variables CSS | Non | Oui |
| Bootstrap 4 / 5 | Non | Oui |
| Sauts de page fiables | Limité | Oui |
| Consommation mémoire | Faible | Plus élevée |
Le moteur peut être défini à deux niveaux :
Niveau global (s'applique à tous les formats d'impression) :
Paramètres > Paramètres d'impression > Générateur PDF
Par format d'impression (prioritaire sur le réglage global) :
Ouvrez un format d'impression > champ Générateur PDF
Les deux options proposées sont wkhtmltopdf et chrome.
Pour les entreprises souhaitant créer des formats d'impression visuels sans écrire de code HTML, l'application Print Designer propose un éditeur WYSIWYG avec glisser-déposer. Elle s'appuie sur le moteur Chrome pour le rendu.
Voir : Print Designer
Par défaut, WKHTMLTOPDF peut couper un paragraphe ou une section au milieu lorsqu'un document s'imprime sur plusieurs pages. Pour forcer un bloc à rester entier sur la même page, ajoutez des règles CSS dans le champ CSS personnalisé de votre format d'impression ou de votre en-tête de lettre :
/* Garder les sections entières sur la même page */
.section-break {
page-break-inside: avoid;
}
/* Garder les paragraphes entiers */
p {
page-break-inside: avoid;
}
Pour forcer le passage à la page suivante avant un élément donné :
.ma-section {
page-break-before: always;
}
Si la dernière page de vos impressions est blanche — avec uniquement l'en-tête et le pied de page — cela est le plus souvent causé par un saut de page résiduel en fin de document généré par WKHTMLTOPDF.
Ajoutez ce CSS dans le champ CSS personnalisé de votre format d'impression pour masquer les sauts de page résiduels :
/* Supprimer les sauts de page résiduels en fin de document */
.page-break:last-child {
display: none;
}
Si le problème persiste, vérifiez dans Paramètres > Paramètres d'impression l'option Autoriser les sauts de page dans les tableaux — la décocher peut résoudre les problèmes de pagination sur les documents contenant de longs tableaux.