El PDF que te llega por correo y lo que puede traer dentro
Un documento puede llevar instrucciones que su lector ejecuta al abrirlo, y la página no cambia nada. Qué es esa capa, cómo se quita y qué es lo que quitarla no arregla.
La factura de un proveedor. El contrato que vuelve firmado. El impreso que te manda el ayuntamiento para que lo rellenes. Doble clic, se abre, lo lees. Ese es todo el ritual, y para la inmensa mayoría de los documentos está perfecto.
Lo que casi nadie sabe es que el archivo tenía la opción de hacer otra cosa antes. Un PDF puede llevar instrucciones que su lector ejecuta por su cuenta: al abrirlo, al llegar a una página concreta, al pulsar un rectángulo que parece un enlace. files.co ya sabe quitar esa capa desde el navegador: quitar el contenido activo de un PDF la elimina y deja las páginas tal cual estaban.
Qué se le puede pedir a un documento
Esas instrucciones tienen nombre en la especificación —acciones— y unas cuantas hacen trabajo de verdad:
- JavaScript incrustado a nivel de documento, que corre al abrir el archivo. Sin pulsar nada.
- Una acción de apertura, una sola instrucción que se dispara al mostrarse el documento.
- Acciones en las páginas, que saltan al entrar o al salir de una página concreta.
- Acciones en zonas clicables, o sea un enlace que hace algo distinto de llevarte a un sitio.
- Enlaces que lanzan un programa de tu ordenador o abren un archivo que tienes ahí.
- Envíos de formulario, que mandan lo que has escrito a una URL que eligió quien montó el formulario.
- Una capa XFA, el formato de formularios antiguo de Adobe, que viene con su propio motor de scripting pegado.
Casi nunca es el plan de nadie. Una plantilla corporativa se lleva un script de validación y ya no lo suelta. Un generador de formularios engancha un envío a una URL que dejó de existir hace años. Una herramienta de maquetación mete una acción de página que no había pedido nadie. Se acumula, y se reenvía con el documento.
Por qué no te ibas a dar cuenta
Porque en la página no cambia nada. Un documento con una acción de apertura tiene exactamente la misma pinta que uno sin ella. No hay distintivo, ni marca, ni línea en el panel de propiedades que enseña un lector normal. Lo reenvías a nueve personas y lo has reenviado nueve veces.
Ese es el argumento real para mirar. No que los documentos vayan a por ti, sino que desde fuera no hay forma de saberlo, y hasta ahora tampoco había una manera evidente de hacer nada al respecto.
Limpiar sin romper el documento
La versión ingenua de esta herramienta borraría todas las acciones del archivo y te lo devolvería. También se cargaría todos los hipervínculos, porque un hipervínculo es una acción: una zona clicable con una instrucción enganchada cuyo tipo resulta ser «abre esta URL». Igual que el índice que salta al capítulo cuatro.
Así que la criba se hace por el tipo de instrucción, no por dónde esté. Se quita todo lo que el lector ejecutaría: código, abrir un programa, enviar un formulario, importar datos, abrir otro documento, arrancar el motor multimedia. Se conserva todo lo que solo navega o presenta: enlaces, saltos internos, transiciones de página, capas que se muestran y se ocultan. Y si aparece un tipo que no reconocemos, se queda: romper el documento de alguien por entusiasmo es peor que dejar una instrucción rara en paz.
De ahí salen dos cosas. Tus enlaces sobreviven. Y tu formulario sigue funcionando: los campos no se quitan nunca, solo pierden los scripts que llevaban colgados, así que quien tenga que rellenarlo se encuentra el formulario entero.
Debajo hay además un trabajo menos vistoso. Quitar una instrucción del índice del documento no es lo mismo que quitarla del archivo: el objeto con el código puede quedarse ahí sin que le apunte nadie, invisible en cualquier lector y perfectamente legible para quien abra los bytes en crudo. Por eso cada una se borra junto con su carga, y el test que lo demuestra busca en los objetos del archivo de salida, no en el índice.
El límite, dicho claro
Limpiar no convierte un archivo peligroso en seguro. Quita lo que un lector podría ejecutar; no hace nada con lo que una página pueda afirmar.
Un documento que enseña una pantalla de acceso convincente y te pide la contraseña funciona igual de bien con cero JavaScript dentro. Una factura falsa con el número de cuenta cambiado es un PDF normal y corriente, completamente pasivo. La capa que quita esta herramienta y aquello con lo que es más probable que te la cuelen no son la misma capa. Lee el resultado como «esto ya no ejecuta nada» y sigue leyendo el documento con la desconfianza de siempre.
El asunto de los adjuntos
Un PDF también puede llevar archivos enteros dentro, en una estructura que la página no enseña; el mecanismo lo desmontamos en un PDF es un contenedor. Eso no es contenido activo: nadie los ejecuta al abrir el documento. Pero son la vía habitual de que viaje algo más, así que tienen su propia casilla en la herramienta, con los nombres a la vista y marcada para conservarlos por defecto. Decides tú.
La honestidad que va con eso: si conservas un adjunto, lo que lleve dentro sigue dentro. Limpiar el PDF no entra en una hoja de cálculo que viaja en el maletero.
Dónde encaja esto
Funciona como el resto del sitio: el archivo se lee en tu navegador, se procesa ahí y no sale a ninguna parte. Antes de cambiar nada, la herramienta te dice qué ha encontrado. Y si el documento no lleva nada, te lo dice y te devuelve el archivo que ya tenías en vez de una copia reguardada sin sentido.
Dos buenos momentos para usarla. En un documento que ha llegado de fuera y está a punto de circular por dentro de tu empresa, y en uno tuyo que está a punto de salir al mundo. Este segundo caso hace buena pareja con qué revisar antes de enviar un PDF y con lo que un PDF cuenta de sí mismo, que avisa del JavaScript incrustado y de las acciones de apertura sin tocar el documento — útil cuando lo que quieres es mirar antes de modificar nada.