Journal des modifications
Toutes les modifications notables de l'API DocPayload et du schéma de définition du document.
Les modifications incompatibles sont marquées avec BREAKING. Nous annonçons les modifications incompatibles au moins 30 jours avant qu'elles ne prennent effet.
Mai 2026
Normalisation de la casse des valeurs enum en minuscules (non-incompatible)
Les valeurs textAlign, borderCollapse, verticalAlign et horizontalAlign sont maintenant systématiquement en minuscules dans les fixtures et les docs ("center", "justified", "collapse", "middle", …). Les analyseurs de moteur étaient déjà insensibles à la casse, donc les charges utiles existantes utilisant "CENTER" / "COLLAPSE" continuent de se rendre de manière identique — c'est un nettoyage du vocabulaire, pas un changement de comportement. Les auteurs écrivant de nouveaux modèles doivent utiliser les minuscules pour correspondre au reste de la surface enum JSON ("portrait" / "landscape", "page" / "section", "butt" / "round" / "square", etc.).
BREAKING — Renomage des propriétés de style de canevas (alignement SVG)
Quatre propriétés de style de canevas renommées pour correspondre à la norme attributs de présentation SVG. Les auteurs maîtrisant les canevas SVG / web créent maintenant les styles de canevas DocPayload naturellement ; les anciens noms inventés par DocPayload ne sont plus reconnus.
| Avant | Après | Cartes vers SVG |
|---|---|---|
lineDash | strokeDasharray | stroke-dasharray |
lineDashPhase | strokeDashoffset | stroke-dashoffset |
lineCapStyle | strokeLinecap | stroke-linecap |
lineJoinStyle | strokeLinejoin | stroke-linejoin |
Migration : recherche et remplacement des quatre clés JSON dans vos définitions de style. Les valeurs ne changent pas (butt/round/square pour cap, miter/round/bevel pour join, tableaux de tirets comme avant). La convention [0] / [] « réinitialiser vers solide » sur strokeDasharray ne change pas.
Les internals du moteur (enum StyleProperty, tableaux de dispatch, noms de méthodes de traitement) sont également renommés ; aucune rupture d'API externe au-delà des clés de style JSON.
Avril 2026 (v2.4)
Nouvelles fonctionnalités
- Table des matières — élément de contenu
{ "toc": {} }génère automatiquement une table des matières à partir des titres du document. Liens cliquables avec des pointillés de leaders, numéros de page alignés à droite et signets de contours PDF imbriqués. Placez-le n'importe où dans le flux de contenu — avant tout le contenu, après une page de couverture, entre les sections. Niveaux de titre, texte de titre et style configurables. - Polices personnalisées — enregistrez les familles de polices TrueType/OpenType via la propriété
fontsdu document. Téléchargez les fichiers de police via l'API des ressources des locataires, puis référencez par nom de famille dans les styles. Support complet de 4 variantes (régulier, gras, italique, gras italique) avec repli automatique. Les balises[b]/[i]en ligne utilisent les bonnes variantes de polices personnalisées. Les polices sont intégrées au PDF avec support Unicode complet. - Indexation de tableau —
$data.items[0].nameaccède aux éléments du tableau par index dans les chemins de liaison de données. Fonctionne dans les contextes$data.*et$item.*. Supporte les index chaînés ($data.matrix[0][1]), l'imbrication profonde ($data.company.bills[3].amount) et le repli élégant pour l'accès hors limites.
BREAKING — documentDefinition.dataProvider Supprimé
La propriété dataProvider sur l'objet documentDefinition racine a été supprimée du schéma et n'est plus acceptée.
Cette propriété était à l'origine destinée à lier un modèle de document à une source de données externe, mais n'a jamais été fonctionnelle — la liaison de données a toujours été gérée en externe au moment de la génération (via la charge utile de la requête). Toute charge utile existante utilisant cette propriété doit la supprimer ; la valeur a été silencieusement ignorée.
BREAKING — Renomage des points de terminaison
| Avant | Après | Notes |
|---|---|---|
POST /tenants/{tenantId}/documents/generate | POST /tenants/{tenantId}/documents/generate-from-payload | Clarifie que le client envoie une définition de document complète |
POST /tenants/{tenantId}/documents/generate-from-jsonfile | Supprimé | Utilisez generate-from-payload à la place — envoyez JSON dans le corps de la requête |
Documentation
- Ajout de la section Tutoriels avec 14 exemples de documents complets (factures, étiquettes d'expédition, NDA, formulaires, etc.)
- Ajout de la documentation pour Chiffrement, Signature électronique, Pièces jointes, Signets, Actions JavaScript et Calques
- Ajout de pages de documentation Canvas et Paragraphes
- Tous les tutoriels affichent des onglets Template + Data avec des aperçus PDF rendus
Nouvelles fonctionnalités
- Éléments de titre (
h1–h5) — titres sémantiques avec dimensionnement par défaut intégré (24/18/14/12/10pt). Aucune définition de style nécessaire —{ "h1": "Title" }fonctionne simplement. Les styles personnalisés remplacent les valeurs par défaut. - Symboles de liste simplifiés — Utilisez
"1","a","A","i","I"au lieu de noms d'énumération détaillés.{ "ol": { "symbol": "A" } }affiche A. B. C. - Validation des entrées — les définitions de document sont validées avant le rendu. Les propriétés inconnues, les non-correspondances de type et les erreurs structurelles retournent une réponse structurée
{ code, path, message }. - Schéma JSON — Publié à
/docs/schemas/v1/document-definition.schema.jsonpour l'autocomplétion IDE et la validation. - Validation du schéma Playground — validation en temps réel dans l'éditeur avec marqueurs d'erreur, autocomplétion et bulles d'aide au survol.
POST /documents/generate-from-template— générer des PDF à partir de modèles stockés avec liaison$data- Champ
testDatadu modèle — stocker les données de test aux côtés des modèles pour les tests du terrain de jeu
Améliorations
- Alias raccourci
[img]pour le Shortcode[image] - Alias raccourci
[color]pour le Shortcode[fontcolor] - Alias raccourci
[size]pour le Shortcode[fontsize]
Mars 2026
BREAKING — Schéma v2
Les propriétés suivantes ont été renommées pour la cohérence. Mettez à jour vos définitions de document en conséquence.
| Avant | Après | Notes |
|---|---|---|
watermark.horizontalSpacing / verticalSpacing | watermark.spacing | Maintenant un tableau [x, y] correspondant au modèle margins |
watermark.rotation | watermark.angle | Plus court, sans ambiguïté |
Corrections de bugs
- Rendu de filigrane corrigé — les filigranes sont maintenant rendus sur chaque page via
WatermarkingEventHandler - Correction de la propriété
styledu filigrane non appliquée - Correction de canvas
drawArcutilisant fill+stroke au lieu de stroke uniquement
Améliorations
- Liaison de modèle
$data— refs scalaires,dataProviderde table +dataMap,dataProviderde liste, valeurs par défaut des champs de formulaire - Résolution récursive
$datadans tous les types de contenu (colonnes, canevas, filigranes) - 32 nouveaux tests (118 au total) couvrant les filigranes, les canevas et le guide de démarrage rapide