Guide du produit et de l’API

Graphiques et rapports

Combinez graphiques, tableaux et textes dans un modèle pour créer des rapports de vente, marketing ou projet. Créer votre propre graphique ne nécessite pas l’achat d’une mise en page de rapport.

Créer un graphique dans le Générateur

  1. Ajoutez un graphique depuis Ressources, puis choisissez son type et son titre dans l’Inspecteur.
  2. Ouvrez Modifier les données du graphique pour changer noms de séries, couleurs, catégories et valeurs numériques. Ajoutez des séries ou des lignes si nécessaire.
  3. Appliquer transfère les modifications au graphique. Annuler abandonne les modifications du dialogue. Enregistrez le modèle et vérifiez l’aperçu et les sorties.

Types et limites

Les graphiques en colonnes, barres horizontales, courbes, aires, camemberts et anneaux sont pris en charge. Leurs codes de type JSON sont :

Les exemples sont dessinés par le moteur de graphiques du produit à partir des mêmes quatre lignes ; seul le code de type change.

Chaque graphique accepte jusqu’à 100 catégories et 6 séries. Les camemberts et anneaux n’autorisent qu’une série et refusent les valeurs négatives.

Exemple d’élément de modèle

Cet objet est un graphique dans le tableau elements d’un modèle schemaVersion: 2, pas une requête de rendu complète. L’exemple stocke les données directement dans content.data.

JSON
{
  "id": "monthly-revenue",
  "type": "chart",
  "placementMode": "flow",
  "layout": { "width": 100, "widthUnit": "percent", "height": 240 },
  "content": {
    "title": "Revenue",
    "data": [{ "month": "Jan", "revenue": 42 }, { "month": "Feb", "revenue": 52 }]
  },
  "chart": {
    "type": "bar",
    "labelField": "month",
    "series": [{ "field": "revenue", "label": "Revenue", "color": "#e3232a" }],
    "showLegend": true,
    "showValues": true
  }
}

Lier des données dynamiques

Pour utiliser des données différentes pour chaque document, ajoutez binding: monthlyRevenue au graphique et envoyez un tableau d’objets nommé monthlyRevenue dans les données de la requête. Retirez alors content.data. labelField sélectionne la catégorie et chaque champ de série sa valeur numérique. Les chemins imbriqués comme sales.net sont pris en charge.

Les nombres manquants ou non finis ne deviennent pas zéro ; ils restent des lacunes dans les courbes et aires. Corrigez les valeurs négatives des camemberts et anneaux dans les données sources. Certains libellés peuvent être omis dans les graphiques denses pour éviter les chevauchements.

Un rapport avec des données réelles

Un graphique lié à monthlyRevenue lit le tableau du même nom dans la requête. Le modèle reste identique ; seuls les chiffres arrivent à chaque appel.

cURL
curl -X POST https://api.pdfgine.com/api/v1/render \
  -H "X-PDFgine-Key: $PDFGINE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "templateCode": "sales-report",
        "format": "pdf",
        "locale": "fr",
        "data": {
          "monthlyRevenue": [
            { "month": "2026-01", "revenue": 42000, "target": 40000 },
            { "month": "2026-02", "revenue": 51500, "target": 45000 },
            { "month": "2026-03", "revenue": 47250, "target": 50000 }
          ]
        }
      }'

Chaque objet du tableau représente une catégorie. labelField choisit son nom et chaque champ de série choisit un nombre dans le même objet.

Les problèmes les plus courants

  • binding et content.data sont des alternatives, pas un couple. Un graphique qui possède les deux continue d’afficher les données fixes et votre requête semble ignorée.
  • Les valeurs des séries doivent être des nombres. "42.000,00" est une chaîne ; formatez-la pour le lecteur dans un élément de texte, pas dans la série.
  • Un graphique accepte au plus 100 points et 6 séries. Agrégez les données avant de les envoyer plutôt que d’espérer voir les lignes supplémentaires.
  • Dans Word, le graphique est une image, pas un graphique Word modifiable. Un lecteur qui s’attend à pouvoir cliquer pour le modifier sera déçu ; le PDF et la visionneuse affichent le même dessin.
  • 100% représente la largeur de la zone conteneur, pas celle de la feuille. Dans une colonne ou un conteneur avec marges intérieures, elle est plus étroite que la page.

Comportement de l’aperçu et des sorties

Les graphiques utilisent un moteur SVG commun. PDF et la visionneuse conservent leur apparence ; les exports Word contiennent des images, pas des objets graphiques Word modifiables.

Une largeur de 100% représente la largeur disponible de la zone conteneur, pas de la feuille entière. Marges, colonnes et espacements intérieurs peuvent la réduire.

Générer un document →