Exports PDF
Créez des modèles de documents personnalisés pour générer des PDF professionnels à partir des données de vos objets : factures, devis, bons de livraison, rapports et bien plus.
Introduction
Le module d'export PDF de Miel vous permet de concevoir visuellement des modèles de documents. Chaque modèle est composé de pages, et chaque page est construite à l'aide de widgets que vous disposez librement.
Les données de vos objets sont injectées dynamiquement dans le document grâce à des formules. Par exemple, le nom du client, la date de la facture et les lignes de produits sont automatiquement remplis.
Bon à savoir
Pour qu'un objet puisse être exporté en PDF, l'option Exportable doit être activée dans sa configuration. Vous pouvez créer plusieurs modèles d'export pour un même type d'objet.
Créer un modèle d'export
Pour créer un modèle, vous renseignez les informations suivantes :
| Propriété | Description |
|---|---|
| Nom | Identifiant du modèle |
| Libellé | Nom affiché dans la liste des exports disponibles |
| Titre du document | Titre du PDF généré (peut contenir des formules) |
| Pages | Liste des pages du document (minimum 1) |
| Template | Modèle de base optionnel (ex : papier à en-tête) |
Conseil
Vous pouvez dupliquer un modèle existant pour créer des variantes rapidement. C'est idéal pour avoir un modèle de facture "classique" et un modèle "détaillé" basés sur la même structure.
Les pages
Chaque modèle contient une ou plusieurs pages. Chaque page peut fonctionner selon deux modes :
Page unique
Une seule page est générée pour l'objet. C'est le mode par défaut, adapté à la plupart des documents.
Itérateur
Génère automatiquement plusieurs pages en parcourant une liste. Par exemple, une page par ligne de facture ou une fiche par produit.
Vous spécifiez une formule qui retourne la liste à parcourir. Chaque élément de la liste génère une page.
Options de page
| Option | Description |
|---|---|
| Pagination | Activer les sauts de page automatiques quand le contenu déborde |
| Page du template | Si un template est utilisé, numéro de la page de fond à appliquer |
| Marges | Espacement autour du contenu (haut, bas, gauche, droite) |
Les widgets
Le contenu de chaque page est construit à l'aide de widgetsimbriqués. Chaque widget est un élément visuel que vous configurez et positionnez pour composer votre document.
Propriétés communes
Tous les widgets partagent ces propriétés de base :
| Propriété | Description |
|---|---|
| Largeur / Hauteur | Dimensions du widget |
| Espacement interne | Padding (haut, bas, gauche, droite) |
| Espacement externe | Marge autour du widget |
| Bordure | Couleur et épaisseur du contour |
| Couleur de fond | Couleur d'arrière-plan du widget |
| Répéter | Reproduire le widget sur chaque page (idéal pour les en-têtes/pieds de page) |
Types de widgets disponibles
Texte
Affiche du texte statique ou dynamique (via des formules)
Image
Affiche une image (logo, signature...)
Layout linéaire
Dispose les éléments en ligne ou en colonne (similaire à Flexbox)
Layout relatif
Positionnement libre des éléments sur la page
Grille
Grille avec lignes et colonnes, cellules fusionnables
Tableau statique
Tableau avec en-têtes et mise en forme configurable
Tableau de formule
Tableau généré dynamiquement à partir d'une formule retournant une liste d'objets
Widget Texte
Le widget texte est le plus utilisé. Il permet d'afficher du texte statique ou des données dynamiques grâce à des formules entre accolades.
Exemple de contenu dynamique
Dans le contenu du widget, insérez des formules entre accolades pour injecter les données de l'objet :
Facture n° {numero}
Client : {client.nom}
Date : {dateFacture}
Montant TTC : {montantTTC} EUR| Option | Description |
|---|---|
| Taille de police | Taille en points |
| Hauteur de ligne | Espacement entre les lignes de texte |
| Graisse | Léger, Moyen ou Gras |
| Police | Arial, Helvetica, Lato ou Avenir |
| Couleur | Couleur du texte (RGB) |
| Alignement horizontal | Début, Centre ou Fin |
| Alignement vertical | Début, Centre ou Fin |
| Pas de retour à la ligne | Empêcher le texte de passer à la ligne suivante |
Widgets de mise en page
Les widgets de mise en page vous permettent d'organiser la structure de votre document.
Layout linéaire
Dispose les éléments enfants en ligne horizontale ou en colonne verticale. Similaire au Flexbox en CSS.
| Option | Description |
|---|---|
| Direction | Horizontal ou Vertical |
| Alignement | Début, Centre ou Fin |
| Distribution | Début ou Espace entre les éléments |
Grille
Organise le contenu dans une grille de lignes et colonnes. Vous pouvez fusionner des cellules pour des mises en page complexes.
| Option | Description |
|---|---|
| Nombre de colonnes | Colonnes de la grille |
| Nombre de lignes | Lignes de la grille |
| Afficher les bordures | Montrer les lignes de séparation |
Widgets de tableaux
Deux types de tableaux sont disponibles selon vos besoins :
Tableau statique
Un tableau avec un nombre fixe de lignes et colonnes. Vous configurez manuellement chaque cellule.
Options : nombre de colonnes, largeurs fixes, en-têtes, couleurs d'en-tête et de grille.
Tableau de formule
Un tableau généré dynamiquement à partir d'une formule qui retourne une liste d'objets. Le nombre de lignes s'adapte automatiquement aux données.
C'est le widget idéal pour les lignes de facture, les listes de produits, ou tout contenu tabulaire de longueur variable.
| Option | Description |
|---|---|
| Formule | Expression retournant la liste de données |
| En-têtes | Noms des colonnes affichés |
| Champs | Propriétés des objets à afficher dans chaque colonne |
| Décimales / Unité | Formatage des nombres |
| Largeurs / Alignements | Mise en forme par colonne |
Exemple : tableau de lignes de facture
Pour afficher les lignes d'une facture, vous créez un widget Tableau de formule pointant vers la liste des lignes. Les colonnes pourraient être : "Désignation" (champ designation), "Quantité" (quantite), "Prix unitaire" (prixUnitaire), et "Total" (total).
Prochaine étape
Apprenez maintenant à organiser vos champs en sections et à structurer la navigation de votre application avec les modules.