Extraer páginas de un PDF
La API Extraer Páginas PDF le permite recortar un rango específico de páginas de cualquier PDF y recibir un documento nuevo e independiente. Envía el archivo de origen y las páginas que necesita; devolvemos un PDF nuevo que conserva intactos el diseño, las fuentes y la calidad vectorial del original. Está pensada para ese momento en que necesita las páginas 12 a 18 de un informe de 400 páginas y nada más.
Ejecútela online
Ejecute esto en nuestros servidores con su cuenta. Las herramientas gratuitas corren en su navegador; esta cobra de su saldo del KIT según el precio de arriba.
El problema que elimina
Casi todo flujo documental choca tarde o temprano con la misma pared: un PDF que mezcla varios documentos lógicos en un solo archivo. Un expediente contractual reúne el acuerdo principal, tres anexos y una hoja de firmas. Un libro escaneado llega como un archivo enorme cuando solo te interesa un capítulo. Dividirlos a mano es lento y no escala. La api extraer paginas pdf convierte esa tarea en una sola llamada: indica el rango y recibe un PDF nuevo con exactamente esas páginas y nada más.
Cómo funciona la llamada
Hace un POST a /pdf/extract-pages con su documento y un rango como 12-18, o un conjunto de páginas sueltas. Como el procesamiento de archivos grandes nunca debería bloquear el hilo de su petición, el endpoint es asíncrono: valida la entrada y devuelve de inmediato un task_id. Nuestro edge global se encarga del recorte, y cuando el PDF nuevo está listo le avisamos, sin sondear en bucle ni mantener una conexión abierta mientras se procesa un archivo de 300 páginas.
Qué recibe y cómo
El resultado es un PDF de verdad, no un volcado de imágenes: el texto sigue seleccionable, las fuentes incrustadas viajan con él y los gráficos vectoriales se mantienen nítidos a cualquier zoom. Lo entregamos de dos maneras: un webhook firmado que enviamos a su endpoint al terminar la tarea, la vía recomendada para automatizar, o un enlace firmado válido 24 horas que descarga cuando quiera. Pasada la ventana de retención, su archivo y su resultado se eliminan, y nada de lo que envía se usa jamás para entrenar ningún modelo.
Una nota sobre el formato
El PDF arrastra un modelo basado en páginas desde que Adobe lo publicó en 1993, y esa estructura es lo que hace posible una extracción limpia: cada página es un objeto independiente con su propio flujo de contenido y su diccionario de recursos. Sacar un rango consiste en copiar los objetos de página correctos y sus recursos a un documento nuevo, sin volver a renderizar nada. Por eso las páginas extraídas se ven idénticas al origen: sin recompresión, sin pérdida de calidad, sin texto reformateado.
Su lugar en la automatización
Como cada llamada es una petición REST sin estado que devuelve un task_id, el endpoint encaja de forma natural en colas, trabajos por lotes y flujos orientados a eventos. Dispare una extracción cuando un documento aterriza en su almacenamiento, cuando un usuario pulsa descargar-capítulo, o como paso de un flujo mayor de dividir y enrutar. El cobro es predecible: $0.002 por petición, por página, y una tarea que falla tras tres reintentos nunca se cobra; recibe un error claro.
Qué puede hacer con ella
Entregar un solo capítulo
Una plataforma editorial permite comprar o previsualizar un capítulo de una obra más extensa. Cuando un lector pide el capítulo 4, el backend extrae las páginas 88-104 a un PDF nuevo y sirve solo eso, sin exponer el libro completo.
Separar un expediente contractual
Una herramienta de operaciones legales recibe paquetes de acuerdos firmados y necesita cada anexo como archivo aparte para el gestor documental. Llama a la API una vez por rango para partir el expediente en PDF limpios y archivables por separado.
Aislar facturas de un lote
Un equipo contable recibe un estado mensual donde cada factura de proveedor ocupa dos páginas dentro de un mismo PDF. Un trabajo automatizado extrae cada par de páginas y las enruta al registro del proveedor correspondiente.
Recortar informes para directivos
Un flujo de analítica genera un informe maestro de 200 páginas y luego extrae el resumen ejecutivo de tres páginas para enviarlo a la dirección, mientras el documento completo va al archivo.
Preguntas frecuentes
¿Cómo extraigo páginas de un PDF con una API?
Envíe una petición POST a /pdf/extract-pages con su archivo de origen y el rango que quiere, por ejemplo 5-9. La api extraer paginas pdf devuelve un task_id de inmediato y entrega el PDF terminado por webhook firmado o por un enlace firmado cuando está listo.
¿Hay plan gratis o prueba gratuita?
No hay capa gratuita: las capas gratis se abusan y ralentizan a todos. El acceso funciona con un saldo prepago de ForHosting KIT: se recarga desde $10.00 (no caduca) y cada solicitud se cobra a su precio publicado, así que una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens ni créditos inventados, y una tarea fallida no se cobra.
¿Cuánto cuesta extraer páginas de un PDF?
Cuesta $0.002 por petición, facturado por página. El precio es público y plano: no hay tokens, créditos ocultos ni multiplicadores sorpresa, y una tarea que falla tras tres reintentos nunca se cobra.
¿Puedo extraer páginas no consecutivas, como la 1, la 4 y la 9?
Sí. Puede pedir un rango continuo como 10-20 o un conjunto de páginas sueltas, y se ensamblan en un único PDF nuevo en el orden que indique.
¿Extraer páginas reduce la calidad o pierde texto?
No. Las páginas se copian como objetos PDF nativos, así que el texto sigue siendo seleccionable, las fuentes quedan incrustadas y los gráficos vectoriales conservan toda su resolución. No hay rerenderizado ni recompresión.
¿Cómo extraigo páginas de muchos PDF en lote?
Envíe una llamada por documento; cada una devuelve su propio task_id y se procesa de forma independiente, así puede lanzar miles de extracciones en paralelo mediante una cola. El diseño asíncrono evita que un archivo grande bloquee al resto.
¿Cuánto tiempo es válido el enlace de descarga?
El enlace firmado es válido durante 24 horas. Para automatizar recomendamos el webhook firmado, que envía el resultado a su endpoint en el instante en que la tarea se completa.
¿Qué pasa con mi archivo después del procesamiento?
Su origen y el resultado extraído se eliminan tras la ventana de retención, y nada de lo que sube se usa jamás para entrenar ningún modelo. Los enlaces de entrega y los webhooks van firmados para que solo usted pueda recuperar el resultado.
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, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/pdf/extract-pages \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pdf":"https://ejemplo.com/documento.pdf"}'const res = await fetch("https://api.kit.forhosting.com/pdf/extract-pages", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pdf": "https://ejemplo.com/documento.pdf"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/extract-pages",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pdf": "https://ejemplo.com/documento.pdf"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/extract-pages", 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"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pdf":"https://ejemplo.com/documento.pdf"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/extract-pages", 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
{
"pdf": "https://ejemplo.com/documento.pdf"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.extract_pages",
"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. |
413 | input_too_large | El archivo supera el límite de tamaño. |