Validar campos obligatorios y valores de formularios PDF
Antes de rellenar el formulario, el nombre Ada Lovelace, la fecha de nacimiento 1815-12-10 y la opción de correo se comprueban contra cuatro reglas, y la casilla de boletín sin responder figura como opcional. Una fecha como 2025-02-29 se rechaza. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
Valide los datos destinados a un formulario PDF antes de iniciar el llenado del documento. Proporcione las definiciones de los campos y un objeto de valores; esta capacidad comprobará campos obligatorios, tipos exactos, fechas reales, opciones permitidas, definiciones duplicadas y claves inesperadas. Si todo coincide, devolverá un conjunto limpio de valores validados.
Defina con claridad el contrato del formulario
Comience describiendo cada campo del formulario PDF mediante un nombre único, un tipo admitido y una marca opcional de obligatoriedad. Los tipos disponibles abarcan texto, números finitos, enteros, booleanos, fechas de calendario ISO, selecciones únicas y selecciones múltiples. Los campos de selección también necesitan una lista de opciones, de modo que el validador pueda distinguir una opción aprobada de una cadena arbitraria.
Las definiciones constituyen el contrato del objeto de valores: cada valor suministrado debe corresponder a una definición, y se rechazan los nombres duplicados porque harían ambigua la validación. Use exactamente los nombres de campo que espera la operación posterior de llenado del PDF, incluidas las mayúsculas. Esta capacidad no inspecciona el PDF ni intenta adivinar sus campos.
Separar la detección de campos de la validación facilita las pruebas y permite reutilizar el mismo contrato con muchos registros. Si se omite la marca de obligatoriedad, su valor predeterminado es falso; un campo obligatorio debe contener un valor significativo. En campos de texto, un contenido compuesto únicamente por espacios se considera ausente.
Comprenda la validación estricta de valores
Los valores se comprueban sin conversiones automáticas. Un booleano debe ser true o false, no "yes", 1 ni 0. Las fechas utilizan el formato inequívoco YYYY-MM-DD y deben representar un día real del calendario; por ello, una entrada como 2025-02-29 se rechaza.
El valor de una selección debe coincidir exactamente con una de las cadenas declaradas, respetando mayúsculas y minúsculas. Una selección múltiple debe ser un array de cadenas únicas permitidas; las opciones repetidas o desconocidas provocan un error. Este rigor detecta fallos de correspondencia antes de que produzcan documentos sutilmente incorrectos.
Las mismas representaciones vacías generan un error si el campo es obligatorio. La operación se detiene ante el primer problema y devuelve una incidencia concreta que un formulario o proceso puede mostrar al usuario.
Valide antes de generar el PDF
Use esta capacidad justo después de relacionar los datos de la aplicación con los nombres de los campos PDF y antes de llamar a una herramienta que escriba en el documento. Una respuesta correcta incluye valid true, el número de definiciones examinadas, los valores aceptados y los campos opcionales que no se proporcionaron. Las claves desconocidas se rechazan porque un nombre mal escrito podría desaparecer silenciosamente durante el llenado del PDF.
Esto resulta especialmente útil en procesos por lotes, donde una correspondencia errónea puede afectar cientos de documentos. Guarde las definiciones junto con la versión de la plantilla, valide cada registro contra esa versión y envíe al llenado únicamente los registros correctos. El algoritmo se ejecuta localmente, sin red, aleatoriedad, inferencia de modelos ni estado almacenado, por lo que una misma entrada siempre produce el mismo resultado.
Qué puede hacer con ella
Revisar formularios de incorporación
Compruebe nombres, fechas, consentimientos booleanos y selecciones obligatorias antes de generar formularios completos de empleados o clientes.
Proteger trabajos documentales por lotes
Rechace un registro incorrecto antes de que llegue a la cola de escritura de PDF y produzca un documento incompleto.
Preguntas frecuentes
¿Esta capacidad modifica el PDF?
No. Solo valida definiciones y valores de campos. Envíe los valores validados a otra capacidad que complete el PDF.
¿Cómo se validan las fechas?
Deben usar YYYY-MM-DD y corresponder a un día real, incluido el comportamiento correcto de los años bisiestos.
¿Puede haber valores sin una definición correspondiente?
No. Las claves desconocidas se rechazan para revelar errores tipográficos y correspondencias obsoletas de plantillas.
¿Qué pasa si una casilla obligatoria solo tiene espacios?
Cuenta como vacía, así que la comprobación falla y el mensaje indica qué casilla es. Solo un valor con contenido completa un texto obligatorio; las casillas opcionales que falten simplemente se listan como no enviadas.
¿Acepta «sí» en una casilla de verificación o un número entero escrito como texto?
No. Nada se convierte por usted: una casilla de sí o no necesita un valor verdadero o falso, no la palabra sí ni el dígito 1, y un número entero debe llegar como número, no como el texto 12.
Herramientas relacionadas
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/fill-form-fields \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"fields":[{"name":"full_name","type":"text","required":true},{"name":"age","type":"integer","required":false}],"values":{"full_name":"Ada Lovelace","age":36}}'const res = await fetch("https://api.kit.forhosting.com/pdf/fill-form-fields", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"fields": [
{
"name": "full_name",
"type": "text",
"required": true
},
{
"name": "age",
"type": "integer",
"required": false
}
],
"values": {
"full_name": "Ada Lovelace",
"age": 36
}
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/fill-form-fields",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"fields": [
{
"name": "full_name",
"type": "text",
"required": true
},
{
"name": "age",
"type": "integer",
"required": false
}
],
"values": {
"full_name": "Ada Lovelace",
"age": 36
}
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/fill-form-fields", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"fields":[{"name":"full_name","type":"text","required":true},{"name":"age","type":"integer","required":false}],"values":{"full_name":"Ada Lovelace","age":36}}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"fields":[{"name":"full_name","type":"text","required":true},{"name":"age","type":"integer","required":false}],"values":{"full_name":"Ada Lovelace","age":36}}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/fill-form-fields", 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
{
"fields": [
{
"name": "full_name",
"type": "text",
"required": true
},
{
"name": "age",
"type": "integer",
"required": false
}
],
"values": {
"full_name": "Ada Lovelace",
"age": 36
}
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.fill_form_fields",
"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. |
Notas técnicas
Como la validación es determinista y no abre ni modifica el PDF, resulta útil como control previo tanto en el navegador como en automatizaciones mediante API.
Comprenda la validación estricta de valores
Un entero debe llegar como número JSON sin parte decimal, no como la cadena "12". Los campos numéricos solo aceptan números JSON finitos. Los campos opcionales pueden estar ausentes, ser null o contener una cadena vacía; en esos casos aparecen en missing_optional y no se copian a validated_values.
Valide antes de generar el PDF
El objeto validated_values conserva exactamente los valores JSON admitidos: no da formato a fechas, no redondea números, no reordena selecciones ni inventa valores predeterminados. Puede usarlo en el navegador para revisiones interactivas, mientras que cada solicitud de API cuesta $0.002 cuando la validación forma parte de una producción automatizada.
Casos de integración
Probar correspondencias de plantillas
Verifique que las claves de salida y los tipos JSON de una aplicación sigan coincidiendo con el contrato de una plantilla PDF versionada.
Preguntas técnicas
¿Qué ocurre si falta un campo obligatorio?
La solicitud falla con un error invalid_input que indica el nombre del campo obligatorio.
¿Las cadenas numéricas se convierten en números?
No. La validación es estricta: un número o entero debe proporcionarse como número JSON.
¿Cuánto cuesta una solicitud de API?
Cada solicitud cuesta $0.002. El validador determinista también puede ejecutarse en el navegador.