Divida un PDF por rango de páginas en un archivo nuevo
Divida un PDF por rango cuando necesite una sección continua de un documento extenso sin enviar, guardar ni revisar las demás páginas.
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
Proporcione el PDF de origen y las páginas inicial y final mediante la numeración habitual que comienza en 1. El resultado será otro PDF con el rango inclusivo en su orden original. La fuente no cambia y los rangos no válidos se rechazan claramente, en vez de generar un archivo parcial o engañoso.
Elija un rango inclusivo con números de página previsibles
Esta herramienta considera página 1 la primera que muestra un visor de PDF normal. Indique una página inicial y otra final; ambos límites quedarán incluidos en el archivo nuevo. Por tanto, al pedir las páginas 4 a 7 obtendrá cuatro páginas: 4, 5, 6 y 7. Esta regla sencilla evita las sorpresas de la indexación desde cero habitual en bibliotecas de programación y hace que una solicitud automatizada coincida con lo que una persona ve en pantalla. Antes de dividir, compruebe si el documento contiene una portada impresa o páginas introductorias sin numerar, ya que los folios impresos pueden diferir de las posiciones del visor. La capacidad utiliza posiciones físicas del PDF, no los números dibujados en la página. El inicio debe ser menor o igual que el final y ambos valores deben ser enteros positivos. Si algún límite supera el total de páginas del origen, la solicitud devuelve un error de entrada. Nunca recorta el rango en silencio, sustituye el límite por la última página ni crea un archivo incompleto que pueda confundirse con la sección solicitada.
Comprenda qué devuelve el divisor
Una solicitud correcta crea un PDF nuevo que solo contiene las páginas del intervalo continuo elegido. La entrada original no se modifica, por lo que usted puede reutilizarla para otro rango o conservarla como documento de referencia. Junto al PDF nuevo, la respuesta informa del total de páginas del origen, el número de páginas extraídas y los valores inicial y final aceptados. Estos campos facilitan las comprobaciones automáticas: un flujo puede confirmar que las páginas 12 a 18 produjeron siete páginas antes de adjuntar el resultado a un expediente, registro de cliente o correo electrónico. La operación es determinista y su lógica no depende de solicitudes de red, elecciones aleatorias, inferencia de modelos ni de la hora actual. La versión del navegador ejecuta el mismo algoritmo central que el controlador de la API. Esta capacidad está diseñada expresamente para un único intervalo continuo. Si necesita páginas dispersas, otro orden o varios archivos de salida, utilice un flujo de extracción, reordenación o división general creado para ese modelo de selección.
Cree flujos documentales seguros mediante la validación
Validar el rango resulta especialmente importante cuando los números de página proceden de otro sistema. Un índice podría indicar que una factura ocupa las páginas 31 a 34, mientras que un escaneo posterior solo tiene 30 porque la carga quedó truncada. Generar las páginas 31 a 34 como resultado vacío o abreviado ocultaría el problema anterior. Este divisor compara ambos límites con el total analizado y rechaza la solicitud cuando el rango queda fuera del documento. Trate ese error como una señal para poner el archivo en cuarentena, actualizar el índice o solicitar una carga completa. En el uso interactivo, compruebe el total en el visor y vuelva a intentarlo con límites válidos. Mediante la API, registre el rango solicitado y el total devuelto sin guardar el documento en los registros, sobre todo si el PDF incluye material personal o financiero. El cobro es sencillo: cada solicitud de API cuesta $0.002, mientras que la ejecución está disponible localmente en el navegador. Como el resultado es un archivo independiente, asígnele un nombre descriptivo con el identificador del origen y el rango para futuras auditorías.
Qué puede hacer con ella
Separe una sección de un contrato
Cree un PDF nuevo con las páginas del anexo que solicita una persona revisora, sin compartir las condiciones comerciales ajenas del acuerdo completo.
Dirija una factura de un lote
Use los límites guardados por una etapa de indexación para separar la factura de un proveedor de un escaneo mensual combinado y asociarla al registro correcto.
Comparta un capítulo de un informe
Extraiga un capítulo continuo de un informe técnico extenso para entregar a un colega un documento más breve y centrado, manteniendo intacto el archivo maestro.
Preguntas frecuentes
¿Se incluyen las páginas inicial y final?
Sí. El rango es inclusivo, por lo que las páginas 3 a 5 generan un PDF de tres páginas que contiene 3, 4 y 5.
¿Qué ocurre si el rango supera el total de páginas del PDF?
La solicitud falla con un error de entrada no válida que incluye el total del documento. No se devuelve ningún PDF parcial.
¿La división modifica el PDF original?
No. Las páginas seleccionadas se escriben en un PDF nuevo y el valor de origen nunca se modifica.
¿Puedo solicitar páginas no consecutivas?
No. Esta capacidad acepta un único intervalo continuo. Use una herramienta de extracción cuando necesite números de página separados o reordenados.
¿Cuánto cuesta?
El precio de la API es de $0.002 por solicitud. La versión del navegador puede ejecutar localmente la misma operación determinista.
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/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)Ejemplo de solicitud
{
"pdf": "https://ejemplo.com/documento.pdf",
"start_page": 1,
"end_page": 2
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.split_by_range",
"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. |