Cómo rellenar un formulario PDF
- Encuentra los nombres de campo de tu formulario PDF, ábrelo en Adobe Acrobat, Vista previa o cualquier editor de PDF y comprueba las propiedades de cada cuadro de texto, casilla o desplegable para su nombre de campo interno.
- Crea un pequeño archivo JSON que asocie cada nombre de campo con el valor que quieres, por ejemplo:
{"nombre_completo": "Ana García", "acepta_terminos": true, "provincia": "Madrid"}. - Suelta tu PDF y tu archivo JSON juntos en el recuadro de arriba (o añádelos uno tras otro), la herramienta los distingue automáticamente por tipo de archivo.
- Opcionalmente activa Aplanar campos si quieres que los valores rellenados queden fijados y ya no editables.
- Haz clic en Rellenar Formulario PDF y descarga el archivo completado.
Sin cuenta, sin correo, sin subida, todo el trabajo se ejecuta en tu propio dispositivo, usando el soporte nativo de AcroForm de pdf-lib para fijar el valor real de cada campo.
¿Por qué rellenar un formulario PDF de esta manera?
Los formularios gubernamentales, documentos de impuestos, solicitudes de visado y muchísimos formularios de admisión de empresa se siguen distribuyendo como PDF con campos AcroForm interactivos (cuadros de texto, casillas, desplegables) pensados para rellenarse en un lector de PDF. Pero los lectores que vienen integrados en navegadores y teléfonos suelen ser toscos, y “imprimirlo, rellenarlo a mano, volver a escanearlo” es una solución habitual a la que recurre la gente cuando un formulario no se comporta bien.
Esta herramienta toma un camino distinto, más fiable: lee los nombres y tipos de campo reales del PDF y fija el valor real subyacente de cada uno usando el mismo mecanismo AcroForm que el propio Adobe Acrobat escribe, no una superposición de imagen, no una suposición de dónde debería ir el texto. Como cada formulario PDF define su propio conjunto único de nombres de campo, no existe una interfaz universal de apuntar y hacer clic que pudiera funcionar para todos los formularios; en su lugar proporcionas un pequeño archivo JSON de pares nombre-de-campo/valor, lo que lleva un minuto extra de preparación pero funciona correctamente para absolutamente cualquier PDF AcroForm, no solo un puñado de plantillas preasignadas.
Los nombres de campo son todo el contrato entre tu JSON y el PDF
Un PDF interactivo no recuerda “el recuadro ancho de arriba a la izquierda”. Recuerda un campo con nombre, y ese nombre es lo que escribiera en su editor, hace años, quien construyó el formulario. La misma idea se llama full_name en una solicitud de alquiler, applicant.name.first en un formulario de inmigración y topmostSubform[0].Page1[0].f1_01[0] en un impreso fiscal estadounidense, porque el nombre que reporta un campo incluye todos los grupos padre en los que está metido.
Así que no existe una capa universal de apuntar y hacer clic que pudiera funcionar con cualquier formulario del mundo, y esta herramienta no finge lo contrario. Tú aportas un pequeño archivo JSON, el módulo lee la lista real de campos del documento, y cada una de tus claves se busca directamente en esa lista. La comparación es exacta y distingue mayúsculas de minúsculas. Nada adivina coordenadas, nada recurre al nombre parecido más cercano, y nada se salta calladamente una clave que no pueda situar.
Esa severidad es justamente el objetivo. Si una clave no coincide con ningún campo, la ejecución se detiene ahí y no sale ningún archivo, en lugar de entregarte un documento que parece relleno pero tiene la fecha de firma vacía. Los campos que simplemente no mencionas son un caso completamente distinto, y se dejan exactamente como los tenía el original.
Texto, casilla, desplegable y opción, y cómo lee cada uno tu valor
Se reconocen cuatro tipos de campo. Un campo de texto acepta lo que le des, convertido a cadena, y un null de JSON o una cadena vacía borra el valor en lugar de escribir uno. Si ese campo declara una longitud máxima y tu valor es más largo, pdf-lib lo rechaza y la ejecución termina, así que una dirección de 30 caracteres no se va a apretujar en un recuadro de 25.
Una casilla lee tu valor de forma laxa a propósito, porque el JSON escrito a mano está lleno de booleanos entrecomillados. Solo false, null, el número 0 y las cadenas "false", "0" o "" dejan una casilla sin marcar, recortando y pasando a minúsculas esas cadenas antes de compararlas. Todo lo demás la marca, así que "no" marca la casilla.
Un grupo de opciones es el estricto. La cadena que pases tiene que ser uno de los valores de exportación del propio grupo, que con frecuencia es un código escueto y no el texto impreso en la página. Un desplegable es lo contrario, y acepta un valor no listado convirtiéndose en un combo editable para que el texto personalizado sea legal. Cualquier cosa que no sea uno de esos cuatro, un botón o un campo de firma digital por ejemplo, se trata como no rellenable y solo da problemas si tu JSON lo nombra directamente. Si lo que necesitas es una marca manuscrita real y no un valor de formulario, Firmar PDF coloca una imagen de firma en la página que elijas.
Aplanar, y qué le hace a los campos que nunca tocaste
Aplanar no es un bloqueo cosmético. La apariencia renderizada de cada campo se pinta dentro del contenido de la página como gráficos corrientes y después el propio objeto de campo se elimina, en todo el formulario y no solo en los recuadros que fijaste. Una casilla que nunca mencionaste queda horneada en el estado en que ya estuviera, y después no queda campo vivo que cambiar, ni registro del tipo que fue, ni forma de deshacerlo.
Deja la opción desactivada y el documento vuelve todavía rellenable, que suele ser lo que quieres a mitad de un flujo de trabajo. Puedes bloquearlo más adelante como una pasada aparte con Aplanar PDF, que es el mejor orden cuando todavía tiene que entrar una firma o una contrafirma.
Un fallo sorprende a la gente, y en español se topa uno con él enseguida: pdf-lib redibuja la apariencia de cada campo que cambió usando Helvetica, una fuente limitada al conjunto latino, así que un valor con caracteres cirílicos, griegos o CJK lanza un error de codificación al guardar y no aparece ningún archivo. Los acentos y la eñe sí entran en ese conjunto latino, de modo que un nombre como “Begoña Núñez” se rellena sin problema.
Qué reescribe pdf-lib al salir
Rellenar es casi quirúrgico. El contenido de las páginas, las imágenes, las fuentes y la maquetación quedan intactos, y los campos que no tocaste conservan sus valores. La información del documento es la excepción, porque pdf-lib la refresca al abrir el archivo, estampando su propio nombre en la entrada de productor y poniendo la fecha de modificación en el momento actual. Si la salida va a algún sitio público, remata con Eliminar Metadatos de PDF.
Tus documentos nunca salen de tu dispositivo
Los formularios que la gente rellena con una herramienta así son exactamente los que más se cuidan: declaraciones de impuestos con un número de identificación, formularios médicos de admisión, solicitudes de préstamo, papeleo de visado. Subir una versión a medio rellenar o completamente rellenada de un formulario así a un servidor (aunque sea brevemente, aunque sea desde una herramienta “gratuita”) entrega a un tercero exactamente los mismos datos sensibles que el propio formulario recopilaba.
SysFenix rellena el formulario localmente: una vez cargada la página, la red ya no interviene. Tanto el PDF como tu archivo JSON de valores se abren en la memoria de tu navegador, cada campo se fija ahí usando pdf-lib, y el PDF completado se guarda en tu carpeta de descargas. Nada se sube, registra ni retiene, no hay nada en nuestro lado que pudiera filtrarse, porque los archivos nunca nos llegan.
Usos habituales
- Rellenar un formulario gubernamental o de impuestos repetible una vez construido su archivo JSON de valores
- Completar una solicitud de empleo, formulario de admisión o solicitud de alquiler en PDF sin imprimirlo
- Prerrellenar la misma plantilla PDF para varias personas reutilizando una estructura JSON con distintos valores
- Fijar un formulario completado con la opción de aplanado antes de enviarlo, para que los destinatarios no puedan cambiar accidentalmente una respuesta
- Probar en lote los campos de una plantilla de formulario durante su creación, antes de enviarla a usuarios reales