Ajouter un champ de signature à un PDF
Un champ de 200 sur 50 points placé en 72, 72 sur une page Letter de 612 sur 792 tient, avec 340 points libres à droite et 670 au-dessus, dans le quart inférieur gauche. Validez la position de la signature avant de l'apposer. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Largeur de page
- 612
- Hauteur de page
- 792
- X
- 72
- Y
- 72
- Largeur
- 200
- Hauteur
- 50
- Système de coordonnées
- pdf_points_origin_bottom_left
- Quadrant
- bottom_left
- Aire (points)
- 10 000
- Pourcentage de couverture
- 2,063115
Si un bord quelconque dépasse de la page, elle rejette le placement avec une explication précise de la limite franchie, avant que vous ne gaspilliez une opération de signature sur un champ que personne ne verra jamais.
Pourquoi le placement des champs de signature échoue en production
Et toute équipe qui automatise la signature de documents finit par livrer un bug de mise en page — un modèle de contrat se recomposite, une page numérisée arrive en A4 au lieu de Letter, une coordonnée calculée pour une page portrait atterrit sur une page paysage, et le champ de signature se retrouve hors de la page visible. Dans certains outils, la signature est quand même appliquée : le document apparaît donc comme signé dans le tableau de bord, mais rien ne s'affiche sur la page qu'ouvre un humain.
Un appel de validation remplace l'incident en aval.
Coordonnées, unités et ce que vous obtenez
Toutes les valeurs sont en points PDF — soixante-douze par pouce — avec l'origine au coin inférieur gauche de la page, x croissant vers la droite et y vers le haut, exactement le système de coordonnées que les annotations de champs de signature PDF utilisent nativement.
En cas de succès, la réponse renvoie le rectangle normalisé, donne les quatre limites absolues, la marge restante de chaque côté de la page, le point central, un quadrant lisible comme bottom-left, l'aire du champ en points carrés et le pourcentage de la page qu'il couvre, plus une description en une ligne que vous pouvez verser directement dans un journal ou une piste d'audit.
En cas d'échec, le message d'erreur porte les valeurs fautives : quelle coordonnée est tombée sous zéro ou quel bord calculé a dépassé quelle dimension de la page. L'arithmétique est pure géométrie de rectangles avec des valeurs arrondies à six décimales, de sorte qu'une même requête produit toujours une sortie identique octet par octet sur n'importe quelle machine.
Où il s'intègre dans un pipeline de signature
Utilisez-le comme barrière avant toute opération qui écrit un champ de signature : les constructeurs de modèles valident chaque champ à l'enregistrement du modèle, les tâches de signature par lots valident document par document juste avant l'apposition, et les pipelines d'ingestion valident lorsqu'un écart de taille de page est soupçonné entre le modèle et le fichier entrant.
Comme la capacité est de la géométrie pure sans E/S de fichier, elle est assez rapide pour s'exécuter sur chaque document d'un lot sans hésiter, et assez déterministe pour que sa sortie puisse être conservée comme preuve d'un placement vérifié.
Cas d’usage
Valider un modèle de signature avant publication
Validez chaque champ de signature d'un modèle par rapport à la taille de page cible à l'enregistrement, de sorte qu'un champ mal placé soit détecté par l'auteur, pas par le premier signataire.
Protéger une tâche de signature par lots
Vérifiez le placement par document juste avant l'apposition ; une tâche qui placerait le champ hors page échoue bruyamment sur ce document au lieu de livrer silencieusement une signature invisible.
Déboguer une signature manquante signalée par un client
Rejouez la taille de page et le rectangle exacts du ticket de support et voyez instantanément quel bord de la page le champ a franchi, avec les chiffres qui le prouvent.
Questions fréquentes
Combien ça coûte ?
C'est aussi gratuit à exécuter dans votre navigateur sur cette page.
Est-ce que cela modifie mon PDF ?
Non. Cela valide uniquement la géométrie — vous envoyez six nombres, pas un fichier. Rien n'est téléversé, stocké ni écrit.
Quel système de coordonnées est utilisé ?
Les points PDF natifs : 72 points par pouce, origine au coin inférieur gauche de la page, x vers la droite et y vers le haut — le même système que les annotations de champs de signature.
Un champ exactement au bord de la page passe-t-il ?
Oui. Un champ dont le bord droit coïncide avec la largeur de la page est entièrement à l'intérieur ; seuls les bords strictement au-delà des limites de la page sont rejetés.
Le résultat est-il déterministe ?
Oui. C'est de l'arithmétique pure de rectangles avec un arrondi à six décimales, donc la même entrée renvoie toujours une sortie identique octet par octet.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/pdf/digital-sign-field \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"page_width":612,"page_height":792,"x":72,"y":72,"width":200,"height":50}'const res = await fetch("https://api.kit.forhosting.com/pdf/digital-sign-field", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"page_width": 612,
"page_height": 792,
"x": 72,
"y": 72,
"width": 200,
"height": 50
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/digital-sign-field",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"page_width": 612,
"page_height": 792,
"x": 72,
"y": 72,
"width": 200,
"height": 50
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/digital-sign-field", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"page_width":612,"page_height":792,"x":72,"y":72,"width":200,"height":50}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"page_width":612,"page_height":792,"x":72,"y":72,"width":200,"height":50}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/digital-sign-field", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"page_width": 612,
"page_height": 792,
"x": 72,
"y": 72,
"width": 200,
"height": 50
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.digital_sign_field",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_mb | 25 |
max_pages | 200 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
L'API pour ajouter un champ de signature à un PDF vérifie la seule chose qui brise silencieusement les flux de signature : le rectangle que vous comptez utiliser pour un champ de signature numérique tient-il réellement sur la page. Vous envoyez la taille de la page et la position du champ en points PDF ; l'API confirme que le champ se situe entièrement dans les limites de la page et décrit le placement — marges de chaque côté, quadrant où tombe son centre et part de la page couverte.
Pourquoi le placement des champs de signature échoue en production
Le endpoint add pdf signature field existe pour intercepter cette catégorie de bug au seul moment où il coûte peu cher : avant la création du champ. Vous décrivez la page et le rectangle, et l'API confirme le placement avec une description géométrique complète ou le rejette en nommant le bord exact qui a été franchi — à gauche, en bas, au-delà du bord droit ou au-delà du haut.
Coordonnées, unités et ce que renvoie l'API
Vous passez la largeur et la hauteur de la page plus le rectangle du champ sous forme x, y, width et height.
Où il s'intègre dans un pipeline de signature
Le même code qui répond à l'API s'exécute gratuitement dans votre navigateur sur cette page, si bien qu'un ingénieur support peut reproduire le placement défectueux d'un client en saisissant les six mêmes nombres que le pipeline a envoyés. Payez par appel à $0.002 uniquement quand vous l'automatisez ; explorer des mises en page et déboguer une coordonnée précise qui échoue ne coûte rien.
Questions techniques
Que se passe-t-il si le champ est hors de la page ?
La requête échoue avec une erreur invalid_input dont le message nomme la limite franchie et affiche les valeurs fautives, par exemple un bord droit de 700pt sur une page de 612pt de large.