Aplanar un PDF
Un formulario lleno no es un documento terminado mientras sus campos, casillas y comentarios adhesivos sigan activos y editables. Esta API para aplanar PDF fusiona de forma permanente cada valor de formulario y cada anotación dentro del contenido de la página, convirtiendo un PDF interactivo en uno fijo y definitivo que se ve igual para cualquier lector y que no se puede alterar en silencio despué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.
Por qué importa aplanar
Un contrato firmado, un formulario de impuestos completado o una solicitud aprobada no deberían seguir teniendo un campo de texto editable con el nombre de alguien adentro. Mientras los campos AcroForm de un PDF sigan siendo interactivos, cualquier lector con herramientas básicas puede alterar los valores, reescribir una cifra o borrar una marca de verificación, y el documento seguirá abriendo e imprimiendo con normalidad, sin que nada advierta visiblemente que cambió. Aplanar cierra ese hueco al convertir el valor actual de cada campo, junto con resaltados, sellos o comentarios, en contenido de página ordinario y no interactivo.
Qué hace la solicitud
Llama a POST /pdf/flatten con su documento y recibe un task_id de inmediato, ya que el trabajo corre de forma asíncrona en lugar de mantener su conexión abierta. Detrás de escena, la apariencia actual de cada campo de formulario se dibuja directamente sobre la página y el widget interactivo subyacente se elimina, y lo mismo ocurre con tipos de anotación como notas de texto, resaltados y sellos. Lo que queda se ve idéntico al abrirlo, pero ya no hay un AcroForm que editar ni una capa de anotaciones que desactivar.
PDF interactivo frente a PDF terminado
El PDF ha soportado campos de formulario activos y capas de anotación desde sus primeros años, en gran parte para que el papeleo pudiera moverse por ciclos de revisión de forma digital: un revisor resalta una cláusula, un firmante llena un campo, un gerente estampa una aprobación. Esa flexibilidad es exactamente lo que hace necesario aplanar una vez que el ciclo termina: el mismo mecanismo que hizo colaborativo al documento durante el borrador se convierte en un riesgo una vez que debe considerarse definitivo. Aplanar es el paso final deliberado que cierra un documento interactivo.
Dónde encaja en un flujo de trabajo
Coloque este paso al final de cualquier flujo que llene, firme o anote PDFs, justo después de la última edición legítima y antes de que el archivo se archive, se envíe por correo o se entregue a una contraparte. Combina naturalmente con un paso de llenado de formulario: llene los campos de forma programática y aplane de inmediato para que la copia entregada quede bloqueada. Como cada llamada es pequeña y autónoma, es fácil convertir el aplanado en una etapa automática y obligatoria, en lugar de algo que una persona deba recordar activar.
Entrega y confiabilidad
Los documentos aplanados se entregan por un webhook firmado, la vía recomendada para flujos automatizados, o mediante un enlace firmado válido durante 24 horas. Los archivos de origen y de salida se conservan solo durante la ventana de retención y luego se eliminan, y nada de lo que envía se usa para entrenar ningún modelo. Si un documento no se puede procesar, se reintenta tres veces antes de devolver un error claro, y nunca se cobra por una tarea fallida.
Qué puede hacer con ella
Bloquear un contrato firmado antes de entregarlo
Después de llenar programáticamente un campo de firma y fecha, aplane el PDF para que la contraparte reciba una copia final donde esos valores ya no se puedan editar.
Finalizar un formulario gubernamental o de impuestos
Una vez que una solicitud está llena y revisada, aplánela antes de archivarla para que el registro guardado refleje exactamente lo enviado y no pueda alterarse después.
Cerrar una copia de revisión con anotaciones
Después de que los comentarios y resaltados legales o editoriales cumplieron su propósito, aplane el archivo para que las marcas pasen a ser parte permanente de la página en lugar de una capa removible.
Preparar un documento para impresión o archivo
Aplane antes de enviar un PDF a una imprenta o a un archivo de largo plazo, ya que algunos flujos de impresión y visores renderizan los campos interactivos de forma inconsistente, mientras que el contenido aplanado se ve igual en todas partes.
Preguntas frecuentes
¿Cómo aplano un PDF con una API?
Envíe el documento a POST /pdf/flatten y recibe un task_id de inmediato. El archivo aplanado, con los campos de formulario y anotaciones fusionados en la página, se entrega a su webhook firmado o a un enlace firmado.
¿La API para aplanar PDF es gratis?
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.
¿Aplanar quita la posibilidad de llenar el formulario después?
Sí, ese es justamente el objetivo. Una vez aplanado, los campos AcroForm interactivos desaparecen y los valores se convierten en contenido fijo de la página, así que el documento ya no puede llenarse ni reenviarse como formulario.
¿Aplana también las anotaciones o solo los campos de formulario?
Ambos. Los valores de los campos y tipos de anotación como resaltados, notas de texto y sellos se fusionan en el contenido de la página en el mismo proceso, ya que dejar cualquiera de los dos editable anularía el propósito.
¿El PDF aplanado se verá diferente del original?
No. Aplanar conserva la apariencia visual exactamente igual; solo se elimina la interactividad subyacente, así que un lector ve la misma página, solo que sin ningún campo o anotación que editar.
¿Puedo aplanar muchos PDF a la vez?
Sí. Cada solicitud es una tarea asíncrona independiente con su propio task_id, así que puede enviar lotes grandes en paralelo y recoger cada archivo aplanado por webhook a medida que termina.
¿Aplanar es reversible?
No. Una vez que los campos y anotaciones se fusionan en la página, esa capa interactiva desaparece del archivo de salida. Conserve su original antes de aplanar si es posible que necesite editar el formulario más adelante.
¿Aplanar también comprime o cambia mucho el tamaño del archivo?
El propósito de aplanar es eliminar la interactividad, no reducir el tamaño; cualquier cambio en el peso del archivo suele ser mínimo. Use un paso de compresión dedicado si su objetivo es un archivo más liviano.
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/flatten \
-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/flatten", {
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/flatten",
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/flatten", 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/flatten", 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.flatten",
"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. |