Script de QA revisa 8 556 enlaces en PDF de planificador
Un script de Python verifica cada enlace interno de un PDF de 871 páginas, asegurando que todos apunten a destinos válidos y correctos.

Un diseñador de plantillas digitales generó un planificador de 871 páginas con 8 556 anotaciones de enlaces. El documento se construye con Python y, tras la fase de render, un segundo script de QA reabre el PDF y comprueba cada enlace.
El proceso comienza con una comprobación básica: abrir el archivo y confirmar que contiene 871 páginas. Luego extrae texto de tipos de página (inicio, mes, día, semana, meta, notas) para garantizar que la capa de texto esté intacta; un render corrupto se detectaría aquí.
La fase principal recorre todas las anotaciones de cada página. Para cada enlace, el script resuelve su destino y verifica que la página de destino exista dentro del rango del documento. Se registra cualquier enlace que apunte a una página inexistente o a una posición fuera del PDF. En la versión final, 8 556 enlaces fueron comprobados y ninguno resultó roto.
Además, el script realiza comprobaciones semánticas: por ejemplo, confirma que el enlace de una celda de calendario lleve a la página con la fecha correcta y que las pestañas de la barra lateral apunten al inicio real de cada sección. Estas validaciones previenen errores donde un enlace sea válido técnicamente pero lleve a la página equivocada.
Se valida también la cadena de semanas, asegurando que el enlace "siguiente" de cada semana lleve a la semana siguiente, incluso en el salto de año entre diciembre 2026 y enero 2027. Finalmente, el script asegura que el PDF sea estático: sin JavaScript, sin URIs externas ni llamadas de red.
El resultado fue un PASS total: 8 556 enlaces verificados, 0 rotos. El script también detectó fallos durante el desarrollo, donde la sustitución de destinos por números de página provocaba que cientos de enlaces se desorientaran tras insertar páginas.
Lo que el script no cubre es la compatibilidad con aplicaciones de anotación móvil como GoodNotes o Notability; pypdf solo confirma la validez de los enlaces, pero no cómo lo renderizan en dispositivos reales. Ese test está pendiente.
Para productos basados en plantillas digitales, la verificación automática es esencial. Implementar los checks de QA desde el inicio garantiza que los errores comunes de enlace no lleguen al cliente.


