Découpez un PDF par plage de pages dans un nouveau fichier
Découpez un PDF par plage lorsque vous avez besoin d’une section continue d’un document volumineux sans envoyer, stocker ni examiner toutes les autres pages.
Lancer gratuitement
Tout se passe dans votre navigateur : gratuit, sans envoi de vos données.
Fournissez le PDF source ainsi que la première et la dernière page avec la numérotation habituelle commençant à 1. Vous obtenez un autre PDF contenant cette plage inclusive dans l’ordre d’origine. La source reste intacte et toute plage incorrecte est clairement refusée au lieu de produire un fichier partiel ou trompeur.
Choisissez une plage inclusive aux numéros prévisibles
Cet outil considère la première page affichée par un lecteur PDF ordinaire comme la page 1. Indiquez une page de début et une page de fin : les deux bornes seront incluses dans le nouveau fichier. Demander les pages 4 à 7 produit donc quatre pages : 4, 5, 6 et 7. Cette règle simple évite les surprises liées à l’indexation à partir de zéro, fréquente dans les bibliothèques de programmation, et fait correspondre une requête automatisée à ce qu’une personne voit à l’écran. Avant le découpage, vérifiez si le document comporte une couverture imprimée ou des pages liminaires non numérotées, car les folios imprimés peuvent différer des positions du lecteur. La capacité utilise les positions physiques des pages PDF, et non les numéros dessinés dans leur contenu. Le début doit être inférieur ou égal à la fin, et les deux valeurs doivent être des entiers positifs. Si une borne dépasse le nombre de pages du document source, la requête renvoie une erreur de saisie. L’outil ne réduit jamais silencieusement une plage, ne remplace pas la borne par la dernière page et ne produit pas de fichier incomplet pouvant être confondu avec la section demandée.
Comprenez le résultat fourni par le découpage
Une requête réussie crée un nouveau PDF qui contient uniquement les pages comprises dans la plage continue choisie. Le fichier d’origine n’est pas modifié : vous pouvez donc le réutiliser pour une autre plage ou le conserver comme document de référence. Avec le nouveau PDF, la réponse indique le nombre de pages de la source, le nombre de pages extraites ainsi que les valeurs de début et de fin acceptées. Ces champs simplifient les contrôles automatiques : un processus peut confirmer que les pages 12 à 18 ont bien produit sept pages avant de joindre le résultat à un dossier, une fiche client ou un e-mail. L’opération est déterministe et sa logique ne dépend d’aucune requête réseau, décision aléatoire, inférence de modèle ou heure courante. La version pour navigateur exécute le même algorithme central que le gestionnaire API. Cette capacité vise délibérément un seul intervalle continu. Pour des pages dispersées, réordonnées ou plusieurs fichiers de sortie, utilisez un processus d’extraction, de réorganisation ou de découpage général adapté à cet autre mode de sélection.
Sécurisez vos flux grâce à la validation de la plage
La validation est particulièrement importante lorsque les numéros de page proviennent d’un autre système. Un index peut indiquer qu’une facture occupe les pages 31 à 34, alors qu’une numérisation ultérieure n’en compte que 30 parce que le téléversement a été tronqué. Produire les pages 31 à 34 sous la forme d’un résultat vide ou raccourci masquerait le problème en amont. Ce découpeur compare plutôt les deux bornes au nombre de pages analysé et refuse la requête lorsque la plage sort du document. Considérez cette erreur comme un signal invitant à mettre le fichier en quarantaine, à actualiser l’index ou à demander un téléversement complet. En usage interactif, vérifiez le total dans le lecteur et recommencez avec des bornes valides. Avec l’API, consignez la plage demandée et le total renvoyé sans journaliser le document lui-même, surtout si le PDF contient des données personnelles ou financières. La tarification est simple : chaque requête API coûte $0.002, tandis que l’exécution dans le navigateur est disponible localement. Le résultat étant un fichier distinct, donnez-lui un nom descriptif mentionnant l’identifiant source et la plage afin de faciliter les audits ultérieurs.
Cas d’usage
Isolez une section de contrat
Créez un nouveau PDF avec les pages d’annexe demandées par une personne chargée de la révision, sans transmettre les conditions commerciales sans rapport du contrat complet.
Acheminez une facture issue d’un lot
Utilisez les bornes enregistrées lors de l’indexation pour détacher la facture d’un fournisseur d’une numérisation mensuelle combinée et l’associer au bon dossier.
Partagez un chapitre de rapport
Extrayez un chapitre continu d’un long rapport technique afin de remettre à un collègue un document plus court et ciblé, sans modifier le fichier principal.
Questions fréquentes
Les pages de début et de fin sont-elles incluses ?
Oui. La plage est inclusive : les pages 3 à 5 produisent donc un PDF de trois pages contenant les pages 3, 4 et 5.
Que se passe-t-il si la plage dépasse le nombre de pages ?
La requête échoue avec une erreur de saisie incorrecte qui indique le nombre de pages du document. Aucun PDF partiel n’est renvoyé.
Le découpage modifie-t-il le PDF d’origine ?
Non. Les pages sélectionnées sont écrites dans un nouveau PDF et la valeur source n’est jamais modifiée.
Puis-je demander des pages non consécutives ?
Non. Cette capacité accepte une seule plage continue. Utilisez un outil d’extraction si vous avez besoin de pages séparées ou réordonnées.
Quel est le tarif ?
Le prix de l’API est de $0.002 par requête. La version pour navigateur peut exécuter localement la même opération déterministe.
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/split-by-range \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pdf":"https://ejemplo.com/documento.pdf","start_page":1,"end_page":2}'const res = await fetch("https://api.kit.forhosting.com/pdf/split-by-range", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pdf": "https://ejemplo.com/documento.pdf",
"start_page": 1,
"end_page": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/split-by-range",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pdf": "https://ejemplo.com/documento.pdf",
"start_page": 1,
"end_page": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/split-by-range", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pdf":"https://ejemplo.com/documento.pdf","start_page":1,"end_page":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pdf":"https://ejemplo.com/documento.pdf","start_page":1,"end_page":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/split-by-range", 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
{
"pdf": "https://ejemplo.com/documento.pdf",
"start_page": 1,
"end_page": 2
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.split_by_range",
"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. |