Recortar páginas PDF y calcular sus nuevas dimensiones
Planifique el recorte de un PDF antes de modificar el documento. Indique la anchura y la altura originales de cada página junto con un cuadro de recorte medido en puntos PDF, y esta calculadora devolverá las dimensiones resultantes página por página.
Ejecutar — gratis
También comprueba que cada rectángulo permanezca dentro de su página de origen, para detectar geometrías inválidas antes de enviarlas a una biblioteca PDF, un flujo de impresión o un proceso documental. El cálculo es determinista y admite páginas de distintos tamaños en una misma solicitud.
Describa cada página y cuadro en puntos PDF
Las páginas PDF se miden en puntos: 72 puntos equivalen a una pulgada. Para cada página, indique primero su anchura y altura originales y, después, defina el rectángulo mediante crop_x, crop_y, crop_width y crop_height. La coordenada x parte del borde izquierdo y la coordenada y del borde inferior, de acuerdo con el sistema habitual de los PDF. La anchura y la altura del cuadro representan la zona visible que permanecerá, no márgenes que deban restarse. Por ejemplo, una página Carta de EE. UU. suele medir 612 por 792 puntos. Un cuadro que comienza en 36, 54 y mide 540 por 684 cabe en esa página y genera un resultado de 540 por 684 puntos. Enumere las páginas en el orden del documento. La respuesta les asigna números según ese orden, por lo que podrá vincular la geometría calculada con un informe de inspección o un trabajo posterior. Puede mezclar formatos verticales, apaisados y personalizados.
Comprenda las comprobaciones de límites
Todas las dimensiones originales y todos los componentes del cuadro deben ser números finitos. La anchura y la altura de la página, así como las del recorte, tienen que ser mayores que cero; los orígenes pueden valer cero, pero nunca ser negativos. La calculadora comprueba el límite derecho sumando crop_x y crop_width y comparando el resultado con la anchura original. Para el límite superior aplica el mismo criterio con crop_y, crop_height y la altura original. Si cualquiera de esos bordes rebasa la página, la solicitud termina con un error de entrada inválida que identifica la página afectada. Sí se permite tocar exactamente un borde exterior: el rectángulo puede finalizar justo en la anchura o la altura originales. Esta validación resulta importante porque un rectángulo puede tener dimensiones razonables y, aun así, quedar desplazado fuera de la página debido a su origen. Se revisan todas las páginas y un solo registro inválido evita una respuesta parcial difícil de utilizar.
Integre las dimensiones en su flujo PDF
El resultado muestra para cada página el tamaño original, el origen del recorte y la nueva anchura y altura. No reescribe ni carga el PDF: calcula y valida la geometría que posteriormente podrá aplicar un editor o una biblioteca especializada. Esta separación le permite previsualizar cambios, validar ajustes introducidos por usuarios, estimar la maquetación resultante o normalizar instrucciones antes de iniciar un trabajo documental costoso. Si necesita pulgadas, divida los valores entre 72; conservar los puntos durante el procesamiento evita redondeos innecesarios. Cuando varias páginas compartan tamaño y regla de recorte, repita los valores para cada una, de modo que la salida siga alineada explícitamente con el orden del documento. Antes de aplicar el resultado, confirme si su biblioteca espera x, y, anchura y altura o coordenadas izquierda, inferior, derecha y superior. En el segundo caso, calcule la derecha como crop_x más new_width y la superior como crop_y más new_height. La API cuesta $0.002 por solicitud.
Qué puede hacer con ella
Validar ajustes antes del procesamiento
Rechace con antelación un trabajo documental cuando algún rectángulo solicitado rebase su página de origen.
Previsualizar un PDF con formatos mixtos
Calcule en una respuesta ordenada las dimensiones finales de páginas verticales, apaisadas y personalizadas.
Preparar geometría para una biblioteca PDF
Convierta medidas verificadas de páginas y recortes en entradas fiables para una etapa de edición independiente.
Preguntas frecuentes
¿Esta capacidad modifica el archivo PDF?
No. Valida la geometría y calcula las dimensiones resultantes; otra herramienta PDF puede aplicar después esos valores.
¿Qué unidades debo utilizar?
Use puntos PDF para las dimensiones originales, los orígenes y el tamaño del recorte. Una pulgada contiene 72 puntos.
¿Dónde está el origen del cuadro?
crop_x se mide desde el borde izquierdo y crop_y desde el borde inferior de la página original.
¿Puede el cuadro tocar el límite de la página?
Sí. Puede terminar exactamente en la anchura o la altura originales, pero no rebasarlas.
¿Puede una solicitud incluir distintos tamaños?
Sí. Cada página incluye sus propias dimensiones y su propio cuadro, por lo que se admiten formatos mixtos.
¿Cuánto cuesta?
La API cuesta $0.002 por solicitud; el mismo cálculo determinista puede ejecutarse gratis en el navegador.
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/crop-pages \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pages":[{"width":612,"height":792,"crop_x":36,"crop_y":54,"crop_width":540,"crop_height":684},{"width":842,"height":595,"crop_x":20,"crop_y":15,"crop_width":800,"crop_height":560}]}'const res = await fetch("https://api.kit.forhosting.com/pdf/crop-pages", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pages": [
{
"width": 612,
"height": 792,
"crop_x": 36,
"crop_y": 54,
"crop_width": 540,
"crop_height": 684
},
{
"width": 842,
"height": 595,
"crop_x": 20,
"crop_y": 15,
"crop_width": 800,
"crop_height": 560
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/crop-pages",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pages": [
{
"width": 612,
"height": 792,
"crop_x": 36,
"crop_y": 54,
"crop_width": 540,
"crop_height": 684
},
{
"width": 842,
"height": 595,
"crop_x": 20,
"crop_y": 15,
"crop_width": 800,
"crop_height": 560
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/crop-pages", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pages":[{"width":612,"height":792,"crop_x":36,"crop_y":54,"crop_width":540,"crop_height":684},{"width":842,"height":595,"crop_x":20,"crop_y":15,"crop_width":800,"crop_height":560}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pages":[{"width":612,"height":792,"crop_x":36,"crop_y":54,"crop_width":540,"crop_height":684},{"width":842,"height":595,"crop_x":20,"crop_y":15,"crop_width":800,"crop_height":560}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/crop-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
{
"pages": [
{
"width": 612,
"height": 792,
"crop_x": 36,
"crop_y": 54,
"crop_width": 540,
"crop_height": 684
},
{
"width": 842,
"height": 595,
"crop_x": 20,
"crop_y": 15,
"crop_width": 800,
"crop_height": 560
}
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.crop_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. |