Appliquer la numérotation Bates
La numérotation Bates attribue à chaque page d’un ensemble documentaire un identifiant stable et séquentiel.
Lancer gratuitement
Ce calculateur produit le plan complet avant tout marquage du PDF : indiquez le nombre de pages, le préfixe requis, le numéro de départ et la largeur souhaitée. Le résultat associe chaque position physique à sa valeur numérique et à son étiquette finale. Il vérifie aussi la fin de la séquence à l’avance afin qu’une largeur insuffisante ne crée jamais d’identifiants incohérents au milieu du fichier.
Définissez le plan avant de modifier le PDF
Un processus Bates fiable commence par un plan de numérotation, et non par l’ajout immédiat de texte sur les pages. Obtenez d’abord le nombre de pages avec un lecteur ou un traitement documentaire fiable. Choisissez ensuite un préfixe qui identifie le dossier, la production, le client, la pièce ou le lot sans dépendre du nom de fichier. Le numéro de départ correspond à la première page physique, tandis que la largeur détermine le nombre de positions de la partie numérique. Par exemple, un départ à 17 sur cinq positions donne 00017. La capacité calcule toute la séquence et renvoie, pour chaque page, sa position, son nombre brut et son étiquette terminée. Comme elle ne reçoit ni ne modifie les octets du PDF, vous pouvez contrôler le plan, le conserver dans une piste d’audit ou le transmettre à un outil de marquage. Cette séparation facilite l’approbation préalable et garantit que plusieurs outils utilisent exactement les mêmes identifiants.
Évitez un changement de largeur dans le document
Le remplissage n’est pas une simple préférence visuelle. Des nombres de largeur fixe se trient correctement comme texte, s’alignent proprement et se comparent facilement entre productions. Il faut vérifier non pas seulement le premier nombre, mais le dernier après comptage de toutes les pages. Un PDF de 20 pages commençant à 990 se termine à 1009 : une largeur de trois est donc invalide, même si 990 semble convenir. Le calculateur détermine la valeur finale avant de créer les étiquettes et renvoie une erreur si elle dépasse la largeur demandée. Il n’élargit jamais silencieusement les dernières valeurs, car la série deviendrait incohérente. Si des fichiers suivants doivent poursuivre la séquence, prévoyez la croissance attendue. Le dernier nombre renvoyé prépare le lot suivant : commencez à cette valeur plus un, conservez le préfixe et la largeur, puis évitez chevauchements et lacunes accidentelles.
Employez les étiquettes dans un cadre juridique sûr
Le résultat est déterministe : des entrées identiques produisent toujours la même correspondance, sans réseau, heure courante ni hasard. Il convient donc à la préparation de preuves, aux demandes de documents publics, aux annexes contractuelles, aux enquêtes internes et à l’indexation d’archives. Si la chaîne de conservation importe, gardez la correspondance avec l’empreinte du document source et celle du PDF marqué final. Avant le marquage, confirmez que le nombre fourni englobe toutes les pages traitées, notamment couvertures, intercalaires, annexes et pages volontairement vierges. Vérifiez également l’orthographe et la ponctuation du préfixe ainsi que le départ et la largeur imposés par la production. Cette capacité calcule uniquement les étiquettes : elle ne modifie pas le PDF, n’analyse pas son contenu, ne repère pas les numéros existants et ne choisit pas leur emplacement. Vous pouvez ainsi valider séparément la séquence, puis maîtriser police, couleur et marges dans un outil PDF dédié.
Cas d’usage
Préparer une production juridique
Créez la correspondance exacte entre pages et étiquettes avant d’inscrire des marques Bates permanentes sur le lot.
Poursuivre la série entre plusieurs PDF
Utilisez le dernier nombre du lot précédent pour commencer le document suivant sans doublon ni interruption.
Contrôler un marquage automatisé
Comparez le plan aux marques extraites ou vérifiées visuellement après la modification du PDF par un autre outil.
Questions fréquentes
Cette capacité modifie-t-elle mon PDF ?
Non. Elle reçoit le nombre de pages et les réglages, puis renvoie l’étiquette de chaque page. Un autre outil peut les appliquer.
Que se passe-t-il si la largeur est insuffisante ?
La requête renvoie une erreur d’entrée si le dernier nombre possède plus de chiffres que prévu. Les étiquettes ne sont jamais élargies silencieusement.
Le préfixe peut-il être vide ?
Oui. Une chaîne vide génère des étiquettes contenant uniquement le numéro séquentiel complété par des zéros.
La numérotation peut-elle commencer à zéro ?
Oui. Le départ peut être zéro ou tout entier sûr non négatif, à condition que la plage complète reste dans la limite sûre.
Combien coûte une requête API ?
Chaque requête coûte $0.002. La version dans le navigateur exécute le même calcul déterministe sans envoyer le contenu PDF.
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/bates-numbering \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"page_count":4,"prefix":"CASE-","start_number":17,"padding_width":5}'const res = await fetch("https://api.kit.forhosting.com/pdf/bates-numbering", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"page_count": 4,
"prefix": "CASE-",
"start_number": 17,
"padding_width": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/bates-numbering",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"page_count": 4,
"prefix": "CASE-",
"start_number": 17,
"padding_width": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/bates-numbering", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"page_count":4,"prefix":"CASE-","start_number":17,"padding_width":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"page_count":4,"prefix":"CASE-","start_number":17,"padding_width":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/bates-numbering", 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_count": 4,
"prefix": "CASE-",
"start_number": 17,
"padding_width": 5
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.bates_numbering",
"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_pages | 100000 |
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. |