Extraiga la primera y última página de un PDF
El extractor de la primera y la última página de un PDF convierte el número conocido de páginas de un documento en una instrucción de extracción exacta y determinista.
Ejecutar — gratis
Indique el total y se identificarán la página 1 y la final, con un manifiesto de PDF de dos páginas, nombre de archivo estable y tipo de medio. El documento debe tener al menos dos páginas, pues un archivo de una sola página no ofrece dos límites distintos. El resultado sirve cuando otra etapa ya conoce el total y necesita una selección inequívoca para una operación posterior.
Conserve las dos páginas que enmarcan el documento
Los PDF extensos suelen situar información esencial en extremos opuestos. La primera página puede contener la portada, el título, la identidad de una cuenta, el período del informe o una referencia de entrega; la última puede incluir firmas, aprobaciones, totales, anexos o sellos de presentación. Esta capacidad permite conservar ambas páginas límite sin que usted tenga que calcular por separado el número final. Al indicar el total, el resultado selecciona la página de origen 1 y la página cuyo número coincide con ese total. El manifiesto describe siempre un PDF de dos páginas en el orden original: primero la inicial y después la final. También incluye el tipo de medio PDF y un nombre de descarga previsible para integrarlo con facilidad en un flujo que genere archivos. El documento original no se modifica. Como la selección depende únicamente de la posición, no inspecciona, clasifica, resume ni reinterpreta el contenido de las páginas elegidas.
Comprenda la validación y la numeración
La numeración comienza en uno, igual que en las herramientas habituales de PDF: la página inicial es la 1, no la 0. El valor `page_count` debe ser un entero finito y no puede ser inferior a 2. Se rechazan fracciones, cadenas numéricas, valores ausentes, matrices y objetos en vez de convertirlos silenciosamente. Esta exigencia evita que una solicitud parezca válida cuando los metadatos de origen son incorrectos. Un PDF de una sola página también se rechaza porque su primera y su última página son la misma, mientras que esta capacidad promete dos límites distintos. En un documento de 2 páginas se eligen 1 y 2; en uno de 300, 1 y 300. La respuesta informa tanto del total original como del nuevo total de 2, por lo que el código posterior no necesita deducir a qué documento corresponde cada cifra. Además, enumera expresamente las páginas de origen para que registros, interfaces y etapas posteriores expliquen qué se solicitó.
Use el manifiesto con seguridad en un flujo automatizado
Esta capacidad es determinista y acotada por diseño. No hace solicitudes de red, no lee secretos, no almacena documentos y no utiliza la hora actual ni valores aleatorios. Por ello, el mismo total válido siempre produce idéntico manifiesto. Un flujo típico obtiene un recuento fiable durante la inspección del PDF, llama a esta capacidad para decidir los límites y entrega `extracted_pages` al componente que copia esas páginas desde los bytes de origen a un PDF nuevo. Separar la selección de la transferencia resulta útil en herramientas del navegador, colas y sistemas de auditoría donde el acceso al archivo y las reglas se ejecutan en etapas distintas. Compruebe que el total pertenece al mismo PDF que recibirá la etapa de copia; un dato obsoleto podría señalar una página inexistente en una versión más reciente. La automatización mediante API cuesta $0.002 por solicitud y la lógica pura también puede ejecutarse en el navegador. La respuesta nunca altera el origen; defina aparte la conservación del archivo resultante.
Qué puede hacer con ella
Prepare la portada y la página de firmas
Seleccione la portada inicial y la página final de firmas de un contrato para crear un archivo de revisión compacto.
Archive los límites de un informe
Registre la portada y la certificación final de un informe extenso sin calcular la última posición en el código.
Cree un flujo de procesamiento de PDF
Convierta los metadatos del total en una selección explícita de dos páginas para un copiador de PDF posterior.
Preguntas frecuentes
¿Cuánto cuesta la solicitud de API?
Cada solicitud de API cuesta $0.002. La lógica determinista también puede ejecutarse en el navegador.
¿Por qué se rechazan los PDF de una página?
En un PDF de una página, la primera y la última son la misma. Esta capacidad exige dos páginas de origen distintas.
¿La numeración comienza en cero o en uno?
Comienza en uno. La primera página es 1 y la última equivale a `page_count`.
¿Se modifica el PDF original?
No. Se devuelve un manifiesto determinista para un PDF nuevo de dos páginas y el origen permanece intacto.
¿Puedo indicar el total como una cadena?
No. Indique `page_count` como entero. Las cadenas numéricas y las fracciones se rechazan para evitar ambigüedades.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su 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)Ejemplo de solicitud
{
"page_count": 12
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.first_last_page_extract",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_mb | 25 |
max_pages | 200 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |