Systèmes de coordonnées¶
Concepts communs¶
VoidSign utilise deux systèmes de coordonnées, chacun assigné à des types de champs spécifiques :
| Système de coordonnées | Utilisé par |
|---|---|
| CS-ULP-GD - Upper-Left Point + Given Dimensions | signature |
| CS-CP-AD - Center Point + Auto-Derived Dimensions | text, paraph, date |
Pour les schémas complets des champs, consultez la Référence API.
Pour un guide pratique sur l'utilisation de l'outil Fields Helper et les stratégies de positionnement, consultez Positionner les champs sur un PDF.
Coordonnées en ratios¶
Toutes les valeurs de coordonnées sont des nombres décimaux dans l'intervalle [0.0, 1.0]. Une valeur représente une fraction de la largeur de la page (pour les paramètres X / largeur) ou de la hauteur de la page (pour les paramètres Y / hauteur). Le placement des champs est ainsi indépendant de la résolution.
Origine et axes de la page¶
L'origine (0.0, 0.0) se situe dans le coin supérieur gauche de la page. L'axe X augmente de gauche → droite, et l'axe Y augmente de haut → bas.
Numérotation des pages¶
Les pages sont indexées à partir de zéro : page_number: 0 correspond à la première page. Les champs de paraphe acceptent en plus "all" pour placer le champ sur chaque page.
CS-ULP-GD - Upper-Left Point + Given Dimensions¶
Utilisé par : champs signature uniquement.
Avec ce système de coordonnées, vous définissez le point d'ancrage supérieur gauche ainsi que la largeur et la hauteur explicites de la zone du champ. Le nom complet du signataire est automatiquement rendu dans la zone avec une taille de police calculée pour s'y adapter.
Fonctionnement¶
Vous fournissez quatre valeurs en ratios qui décrivent entièrement le rectangle :
(0,0)──────────────────────────────(1,0)
│ │
│ (box_x_ratio, box_y_ratio) │
│ ↓ │
│ ┌─────────────────────┐ │
│ │ │ │
│ │ Signature field │ box_height_ratio
│ │ │ │
│ └─────────────────────┘ │
│ box_width_ratio │
│ │
(0,1)──────────────────────────────(1,1)
Paramètres¶
| Paramètre | Type | Contraintes | Description |
|---|---|---|---|
type |
string | "signature" |
Type de champ |
box_coordinate_system |
string | "CS-ULP-GD" |
Identifiant du système de coordonnées |
box_x_ratio |
float | 0.0–1.0 | Position X du coin supérieur gauche (fraction de la largeur de la page) |
box_y_ratio |
float | 0.0–1.0 | Position Y du coin supérieur gauche (fraction de la hauteur de la page) |
box_width_ratio |
float | 0.0–1.0 | Largeur de la zone (fraction de la largeur de la page) |
box_height_ratio |
float | 0.0–1.0 | Hauteur de la zone (fraction de la hauteur de la page) |
page_number |
integer | ≥ 0 | Numéro de page indexé à partir de zéro |
signer_ref |
integer | ≥ 1 | Référence au ref d'un signataire dans la requête |
Exemple¶
{
"type": "signature",
"box_coordinate_system": "CS-ULP-GD",
"box_x_ratio": 0.15,
"box_y_ratio": 0.7,
"box_width_ratio": 0.3,
"box_height_ratio": 0.1,
"page_number": 0,
"signer_ref": 1
}
Cela place une zone de signature dont le coin supérieur gauche se situe à 15 % de la largeur de la page et 70 % de la hauteur de la page, s'étendant sur 30 % de la largeur et 10 % de la hauteur. Le signer_ref: 1 lie ce champ au signataire dont le ref est 1 dans le tableau signers.
CS-CP-AD - Center Point + Auto-Derived Dimensions¶
Utilisé par : champs text, paraph et date.
Avec ce système de coordonnées, vous spécifiez où le centre du champ doit se trouver. Le serveur calcule automatiquement la largeur et la hauteur du champ à partir du contenu et de la font_size, puis positionne la zone de sorte que son centre corresponde à vos coordonnées.
Fonctionnement¶
Vous fournissez le point central et une taille de police. La zone englobante est dérivée par le serveur :
(0,0)──────────────────────────────(1,0)
│ │
│ ┌───────────┐ │
│ │ │ │
│ │ × │ │
│ │ (center) │ │
│ └───────────┘ │
│ auto-derived box │
│ │
(0,1)──────────────────────────────(1,1)
Pourquoi un système basé sur le centre ?¶
Comme le serveur dérive les dimensions de la zone à partir du contenu, vous ne pouvez pas accidentellement spécifier une zone trop petite (ou trop grande) pour le texte qu'elle contient. Vous vous concentrez sur où le champ doit être placé ; le serveur gère quelle taille il doit avoir.
Champ texte¶
Texte statique rendu sur le document.
| Paramètre | Type | Contraintes | Description |
|---|---|---|---|
type |
string | "text" |
Type de champ |
box_coordinate_system |
string | "CS-CP-AD" |
Identifiant du système de coordonnées |
box_center_x_ratio |
float | 0.0–1.0 | Position X du centre (fraction de la largeur de la page) |
box_center_y_ratio |
float | 0.0–1.0 | Position Y du centre (fraction de la hauteur de la page) |
page_number |
integer | ≥ 0 | Numéro de page indexé à partir de zéro |
text |
string | max 250 caractères | Contenu textuel à afficher |
font_size |
float | > 0.0, ≤ 100.0 | Taille de police en points |
{
"type": "text",
"box_coordinate_system": "CS-CP-AD",
"box_center_x_ratio": 0.5,
"box_center_y_ratio": 0.95,
"page_number": 0,
"text": "Contrat de prestation N°2024-001",
"font_size": 12.0
}
Champ paraphe¶
Affiche les initiales du signataire (dérivées de son nom complet). Le page_number peut être un entier ou "all" pour placer les initiales sur chaque page.
| Paramètre | Type | Contraintes | Description |
|---|---|---|---|
type |
string | "paraph" |
Type de champ |
box_coordinate_system |
string | "CS-CP-AD" |
Identifiant du système de coordonnées |
box_center_x_ratio |
float | 0.0–1.0 | Position X du centre (fraction de la largeur de la page) |
box_center_y_ratio |
float | 0.0–1.0 | Position Y du centre (fraction de la hauteur de la page) |
page_number |
integer ou "all" |
≥ 0 (si entier) | Numéro de page indexé à partir de zéro, ou "all" pour chaque page |
signer_ref |
integer | ≥ 1 | Référence au ref d'un signataire dans la requête |
font_size |
float | > 0.0, ≤ 100.0 | Taille de police en points |
{
"type": "paraph",
"box_coordinate_system": "CS-CP-AD",
"box_center_x_ratio": 0.9,
"box_center_y_ratio": 0.95,
"page_number": "all",
"signer_ref": 1,
"font_size": 10.0
}
Pour placer le paraphe sur une page spécifique uniquement, utilisez un entier :
{
"type": "paraph",
"box_coordinate_system": "CS-CP-AD",
"box_center_x_ratio": 0.9,
"box_center_y_ratio": 0.95,
"page_number": 2,
"signer_ref": 1,
"font_size": 10.0
}
Champ date¶
Affiche la date UTC actuelle au format dd/mm/yyyy. Le contenu est généré automatiquement — vous spécifiez uniquement la position et la taille de police.
| Paramètre | Type | Contraintes | Description |
|---|---|---|---|
type |
string | "date" |
Type de champ |
box_coordinate_system |
string | "CS-CP-AD" |
Identifiant du système de coordonnées |
box_center_x_ratio |
float | 0.0–1.0 | Position X du centre (fraction de la largeur de la page) |
box_center_y_ratio |
float | 0.0–1.0 | Position Y du centre (fraction de la hauteur de la page) |
page_number |
integer | ≥ 0 | Numéro de page indexé à partir de zéro |
font_size |
float | > 0.0, ≤ 100.0 | Taille de police en points |
{
"type": "date",
"box_coordinate_system": "CS-CP-AD",
"box_center_x_ratio": 0.5,
"box_center_y_ratio": 0.92,
"page_number": 0,
"font_size": 10.0
}
Champs date et requêtes multi-signataires
Les champs date ne sont disponibles que dans les requêtes à signataire unique. Inclure un champ date dans une requête multi-signataires retourne une erreur 422 avec le code date_field_multi_signer. Consultez Limites pour plus de détails.
Référence rapide¶
| Type de champ | Système de coordonnées | Paramètres de position | Dimensions | Contenu |
|---|---|---|---|---|
signature |
CS-ULP-GD | box_x_ratio, box_y_ratio |
Fournies par le client (box_width_ratio, box_height_ratio) |
Nom complet du signataire (rendu automatique) |
text |
CS-CP-AD | box_center_x_ratio, box_center_y_ratio |
Dérivées automatiquement de text + font_size |
text fourni par le client (max 250 caractères) |
paraph |
CS-CP-AD | box_center_x_ratio, box_center_y_ratio |
Dérivées automatiquement des initiales du signataire + font_size |
Initiales du signataire (auto depuis le nom) |
date |
CS-CP-AD | box_center_x_ratio, box_center_y_ratio |
Dérivées automatiquement de la chaîne de date + font_size |
Date UTC actuelle dd/mm/yyyy (auto) |
Validation et contraintes¶
page_numberdoit être inférieur au nombre de pages du PDF (indexé à partir de zéro). Une valeur dépassant le nombre de pages retourne une erreur de validation.- Les champs date sont limités aux requêtes à signataire unique (erreur
date_field_multi_signer). - Chaque signataire doit avoir au moins un champ signature. Les champs possédant un
signer_refdoivent référencer unrefde signataire valide. Note : les champstextetdaten'ont pas designer_refet ne sont pas liés à un signataire spécifique. font_sizedoit être strictement supérieure à 0 et au maximum 100.texta une longueur maximale de 250 caractères.- Toutes les valeurs en ratios (
box_x_ratio,box_y_ratio,box_width_ratio,box_height_ratio,box_center_x_ratio,box_center_y_ratio) doivent être dans l'intervalle[0.0, 1.0].
Consultez le Tableau des erreurs pour la liste complète des codes d'erreur.
Cas limites¶
- Champs proches des bords de page : avec CS-CP-AD, la zone dérivée automatiquement s'étend vers l'extérieur depuis le centre. Si le centre est proche d'un bord (par exemple
box_center_x_ratio: 0.98), une partie de la zone peut dépasser la limite de la page. Maintenez les coordonnées du centre dans une plage d'environ 0.05–0.95, selon la taille de police. - Longues chaînes de texte : un texte de 250 caractères avec une
font_sizeélevée produit une zone très large qui peut déborder de la page. Utilisez des tailles de police plus petites pour les textes longs. - Grandes tailles de police : une
font_sizejusqu'à 100.0 est acceptée, mais les valeurs élevées produisent de grands champs. Testez avec votre PDF réel avant de déployer. - Initiales de paraphe : dérivées de la première lettre de chaque mot du nom complet du signataire (séparé par des espaces et des tirets). Par exemple, « Jean-Pierre Dupont » → « JPD ». La largeur de la zone varie avec le nombre d'initiales.