Extrayez la première et la dernière page d’un PDF
L’extracteur de première et dernière pages PDF transforme le nombre connu de pages d’un document en une instruction d’extraction exacte et déterministe.
Lancer gratuitement
Indiquez le total : il repère la page 1 et la page finale, puis renvoie un manifeste de PDF à deux pages avec un nom de fichier stable et un type de média. Le document doit comporter au moins deux pages, car un fichier d’une page ne présente pas deux limites distinctes. Ce résultat convient lorsqu’une autre étape connaît déjà le total et exige une sélection sans ambiguïté pour une opération PDF ultérieure.
Conservez les deux pages qui encadrent le document
Les longs PDF placent souvent leurs informations d’encadrement les plus utiles à leurs deux extrémités. La première page peut contenir une couverture, un titre, l’identité d’un compte, une période de rapport ou une référence de dépôt, tandis que la dernière peut présenter des signatures, une approbation, des totaux, des annexes ou des marques d’enregistrement. Cette capacité formalise la conservation de ces deux pages limites sans vous obliger à calculer séparément le dernier numéro. Fournissez le nombre total : le résultat désigne la page source 1 et celle dont le numéro correspond à ce total. Le manifeste décrit toujours un PDF de deux pages dans l’ordre original, page initiale puis page finale. Il fournit également le type de média PDF et un nom de téléchargement prévisible, facile à transmettre à un processus de création de fichier. Le document d’origine reste intact. Fondée uniquement sur les positions, la sélection n’inspecte, ne classe, ne résume et ne réinterprète aucun contenu.
Maîtrisez la validation et la numérotation
La numérotation commence à un, comme dans les outils PDF habituels : la page d’ouverture porte le numéro 1, et non 0. La valeur `page_count` doit être un entier fini supérieur ou égal à 2. Les fractions, chaînes numériques, valeurs absentes, tableaux et objets sont refusés au lieu d’être convertis silencieusement. Cette rigueur empêche une demande de paraître valable lorsque les métadonnées de sa source sont incorrectes. Un PDF d’une seule page est également rejeté, puisque sa première et sa dernière page sont physiquement identiques alors que cette capacité garantit deux limites distinctes. Pour un document de 2 pages, les pages retenues sont 1 et 2 ; pour 300 pages, 1 et 300. La réponse indique le total de la source ainsi que le nouveau total de 2, ce qui évite au code suivant de deviner quel nombre décrit quel document. Elle énumère aussi explicitement les pages sources afin que journaux, interfaces et traitements ultérieurs expliquent précisément la demande.
Exploitez le manifeste en toute sécurité dans un flux automatisé
Cette capacité est volontairement déterministe et bornée. Elle n’effectue aucune requête réseau, ne lit aucun secret, ne stocke aucun document et n’utilise ni heure courante ni valeur aléatoire. Un même total valide produit donc toujours le même manifeste. Un flux courant obtient un nombre fiable pendant l’inspection du PDF, appelle cette capacité pour déterminer les limites, puis transmet `extracted_pages` au composant qui copie ces pages depuis les octets sources vers un nouveau PDF. Séparer la sélection du transfert est utile dans les outils de navigateur, les files d’attente et les systèmes d’audit où l’accès au fichier et les règles métier relèvent d’étapes différentes. Vérifiez que le total correspond au PDF reçu par l’étape de copie : une ancienne valeur pourrait désigner une page au-delà d’une version plus récente. L’automatisation par API coûte $0.002 par requête, et la logique pure fonctionne aussi dans le navigateur. La réponse ne modifie jamais la source ; définissez séparément la conservation du fichier produit.
Cas d’usage
Préparez la couverture et la page de signatures
Sélectionnez la couverture initiale et la page finale de signatures d’un contrat pour créer un dossier de contrôle compact.
Archivez les limites d’un rapport
Conservez la page de titre et la certification finale d’un long rapport sans calculer la dernière position dans le code.
Construisez un flux de traitement PDF
Convertissez le nombre de pages en sélection explicite de deux pages pour un copieur PDF placé en aval.
Questions fréquentes
Combien coûte la requête API ?
Chaque requête API coûte $0.002. La logique déterministe peut aussi s’exécuter dans le navigateur.
Pourquoi les PDF d’une page sont-ils refusés ?
Dans un PDF d’une page, la première et la dernière sont identiques. Cette capacité exige deux pages sources distinctes.
La numérotation commence-t-elle à zéro ou à un ?
Elle commence à un. La première page est 1 et la dernière correspond à `page_count`.
Le PDF d’origine est-il modifié ?
Non. La réponse décrit de façon déterministe un nouveau PDF de deux pages et laisse la source intacte.
Puis-je fournir le total sous forme de chaîne ?
Non. Fournissez `page_count` sous forme d’entier. Les chaînes numériques et fractions sont refusées pour éviter toute ambiguïté.
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/first-last-page-extract \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"page_count":12}'const res = await fetch("https://api.kit.forhosting.com/pdf/first-last-page-extract", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"page_count": 12
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/first-last-page-extract",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"page_count": 12
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/first-last-page-extract", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"page_count":12}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"page_count":12}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/first-last-page-extract", 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": 12
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.first_last_page_extract",
"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. |