Convertissez une plage PDF en numéros de page
Transformez une sélection telle que 1-3,5,8-10 en la liste exacte requise par votre exportation.
Lancer gratuitement
Cet analyseur développe les plages inclusives, conserve l'ordre de première demande des pages, supprime les doublons et vérifie chaque résultat par rapport au nombre total de pages. Vous disposez ainsi d'une validation prévisible avant d'extraire, d'imprimer, de scinder ou d'exporter un PDF, sans accepter de page inexistante ni modifier la séquence choisie.
Saisissez une plage de pages sans ambiguïté
Indiquez des numéros isolés, des plages inclusives ou un mélange séparé par des virgules. Par exemple, 1-3,5,8-10 correspond aux pages 1, 2, 3, 5, 8, 9 et 10. Les espaces autour des virgules et des tirets sont acceptés afin que le texte copié depuis un formulaire reste lisible. La numérotation commence à 1, conformément aux lecteurs PDF habituels. Chaque élément doit être un entier positif ou une plage croissante dont le début ne dépasse pas la fin. Les éléments vides, décimaux, mots, nombres négatifs et plages décroissantes sont refusés plutôt qu'interprétés arbitrairement. Fournissez séparément le nombre total de pages du document. L'analyseur l'utilise comme limite stricte pour garantir que la sélection désigne des pages réelles du fichier concerné.
Maîtrisez l'ordre et la suppression des doublons
Le résultat respecte l'ordre de première apparition de chaque page. Une plage est développée de son début à sa fin, puis les éléments suivants poursuivent la séquence demandée. Si une page réapparaît dans une plage chevauchante ou comme numéro isolé, le doublon est omis et sa première position reste inchangée. Ainsi, 3-5,1,4,2 produit 3, 4, 5, 1, 2. Ce choix est essentiel pour alimenter une exportation ou un réagencement PDF : un tri numérique effacerait l'ordre voulu, tandis que la conservation des doublons pourrait exporter plusieurs fois la même page. La réponse contient le tableau pages développé et son count, utilisables directement sans recomptage. Le traitement est déterministe, sans réseau, téléversement, hasard ni dépendance à l'environnement.
Validez avant une exportation ou une impression
Utilisez cet analyseur dès la saisie de la plage, avant de lancer une opération PDF plus coûteuse. Récupérez d'abord le nombre total de pages depuis des métadonnées fiables, puis transmettez-le avec la chaîne. Si une page ou l'extrémité d'une plage dépasse ce total, toute la requête échoue avec une erreur d'entrée qui identifie la page concernée. Aucun nombre n'est ramené silencieusement à la dernière page, car cette correction masquerait une faute de saisie et pourrait créer un dossier incomplet. La même rigueur vaut pour zéro, les entiers non sûrs, les séparateurs incorrects et les plages inversées. Un résultat réussi constitue donc une sélection explicite conforme aux limites déclarées. Cette capacité analyse uniquement le texte : elle n'ouvre, n'inspecte, ne modifie et ne conserve aucun PDF.
Cas d’usage
Valider une fenêtre d'exportation
Développez la plage saisie et refusez l'exportation lorsqu'elle mentionne une page inexistante.
Préparer une extraction PDF
Convertissez une sélection compacte en tableau explicite pour un service d'extraction ou de découpage.
Normaliser les sélections d'impression
Conservez une représentation ordonnée sans doublons malgré les chevauchements de l'expression initiale.
Questions fréquentes
Quel est le tarif ?
Chaque requête API coûte $0.002. La version pour navigateur s'exécute localement sans téléverser de PDF.
Les bornes d'une plage sont-elles incluses ?
Oui. Une plage telle que 4-6 devient les pages 4, 5 et 6.
Que deviennent les pages en double ?
Les répétitions sont supprimées et la position de la première occurrence est conservée.
Le résultat est-il trié ?
Non. L'analyseur préserve l'ordre demandé et développe chaque plage dans le sens croissant.
Que se passe-t-il si une page dépasse le document ?
La requête échoue avec une erreur d'entrée. Aucune page n'est tronquée ni ignorée silencieusement.
Cette capacité lit-elle ou modifie-t-elle mon PDF ?
Non. Elle reçoit uniquement la plage et le total, puis renvoie les numéros de page.
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/export-range-string-parse \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"range_string":"1-3,5,8-10","total_pages":10}'const res = await fetch("https://api.kit.forhosting.com/pdf/export-range-string-parse", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"range_string": "1-3,5,8-10",
"total_pages": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/export-range-string-parse",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"range_string": "1-3,5,8-10",
"total_pages": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/export-range-string-parse", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"range_string":"1-3,5,8-10","total_pages":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"range_string":"1-3,5,8-10","total_pages":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/export-range-string-parse", 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
{
"range_string": "1-3,5,8-10",
"total_pages": 10
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.export_range_string_parse",
"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_chars | 10000 |
max_items | 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. |