Qué es realmente un campo AcroForm
Un PDF rellenable son dos documentos apilados uno encima del otro. Debajo está la página: instrucciones de dibujo estáticas para líneas, texto e imágenes que nunca cambian. Encima se asienta la capa AcroForm, un diccionario de widgets interactivos (campos de texto, casillas, grupos de opciones, desplegables) cada uno con un nombre, un valor actual y un flujo de apariencia que describe cómo debe pintarse. Cuando escribes en un formulario y guardas, no estás editando la página en absoluto. Estás fijando un valor en un widget que da la casualidad de que flota encima.
Esa separación es útil mientras el formulario está en juego y un lastre en cuanto está terminado. El widget sigue siendo editable para siempre, el valor vive en una estructura que la mayoría de extractores de texto ignoran, y distintos lectores se toman libertades notablemente distintas al representar una casilla marcada o un campo resaltado. Aplanar colapsa las dos capas en una.
Qué le hace el aplanado a cada tipo de campo
La operación es el propio form.flatten() de pdf-lib, y conviene saber exactamente qué hace con
cada tipo de campo. El flujo de apariencia de cada widget se refresca, se pinta dentro del contenido
de la propia página en la posición que ocupaba el widget, y después el widget se elimina. Para un
campo de texto eso significa que la cadena que escribiste pasa a ser texto normal de la página. Para
una casilla significa que se confirma la apariencia marcada o sin marcar, que es la razón por la que
una marca que se veía en Acrobat pero desaparecía en la vista previa del navegador pasa a verse en
todas partes. Un grupo de opciones confirma el botón seleccionado. Un desplegable o una lista
confirma el valor elegido como texto plano, y las demás opciones sencillamente dejan de existir en
el archivo.
Después el documento ya no tiene AcroForm en absoluto. Su apariencia visible no ha cambiado, pero a un lector no le queda nada donde ofrecerte un cursor.
Por qué la herramienta nunca pregunta si tu archivo tiene formulario
Esto se comprobó en Node antes de escribir una línea de la herramienta, porque la forma defensiva
evidente (detectar un formulario, ramificar, mostrar un aviso de “no se han encontrado campos”)
habría sido el diseño equivocado si pdf-lib toleraba el caso vacío. Lo tolera: llamar a getForm()
sobre un PDF corriente sin ningún AcroForm devuelve un objeto de formulario vacío en lugar de lanzar
un error, y llamar a flatten() sobre eso no hace nada y no rompe nada.
Esa verificación es la razón por la que la herramienta se ejecuta sin condiciones sobre lo que le des. La mayoría de archivos que la gente suelta aquí (escaneos, informes exportados, documentos que ya eran planos de origen) no tienen ningún campo, y rechazarlos o dar la lata al respecto sería ruido. Los tests fijan esto como un caso de primera clase junto al formulario realmente relleno: un PDF plano entra y sale un PDF plano equivalente, mientras que un archivo corrupto o que no es un PDF falla de forma ruidosa en lugar de producir basura en silencio.
Lo que “aplanar” no significa aquí
La palabra está sobrecargada, y tres de sus otros significados no aplican.
No es aplanado de capas. Los PDF creados desde Illustrator o InDesign pueden llevar grupos de contenido opcional, y esta herramienta no los toca. Tampoco es rasterizar: nada se convierte en un mapa de bits, el texto sigue siendo texto y los vectores siguen siendo vectores. Si de verdad quieres una imagen de cada página, PDF a JPG es la herramienta para eso. Y no es censurar. Aplanar un campo que contenía un número de la seguridad social hace ese número permanente, no lo oculta; si el objetivo es eliminar información en lugar de fijarla, usa Censurar PDF.
Dos herramientas hermanas tampoco necesitan aplanado. Firmar PDF estampa tu imagen de firma directamente en la página con una llamada de dibujo, y Anotar PDF graba resaltes y notas en el contenido de la página al exportar. Las dos producen contenido estático por construcción. Ejecutar esta herramienta sobre su salida no cambia nada, salvo que el mismo archivo lleve además campos de formulario separados, rellenados con Rellenar formulario PDF o en un lector de escritorio, que sigan vivos.
Un formulario completado es el peor archivo posible para subir
Piensa en lo que hay escrito de verdad en los campos de los PDF que la gente quiere aplanar: una fecha de nacimiento, una cuenta bancaria, un salario, un historial médico, un bloque de firma en un contrato que todavía no está firmado por la otra parte. Un formulario rellenable es de las mayores concentraciones de datos personales que lleva un documento corriente, y los valores están en el archivo en forma plana y legible por máquina bajo sus propios nombres de campo, que es precisamente lo que los hace triviales de cosechar para un servicio del lado del servidor.
Esta herramienta carga los bytes en la memoria de tu navegador, llama a flatten() ahí y guarda el
resultado en tu carpeta de descargas. El carácter irreversible del aplanado corta en los dos
sentidos, así que guarda el original rellenable en algún sitio seguro antes de fijar un formulario
que quizá aún tengas que corregir.
Aplanar un PDF
- Suelta uno o más PDF en la caja de arriba.
- Pulsa Aplanar un PDF.
- Descarga cada resultado. Los nombres siguen al de entrada con
-flattenedañadido, así quecontrato-firmado.pdfpasa a sercontrato-firmado-flattened.pdf.
No hay opciones, porque no hay ninguna variante con sentido de esta operación. O los campos quedan grabados o no.

