Hace tiempo que termine mi proyecto de fin de carrera y para documentarlo en su día tuve que seguir una normativa de proyectos de fin de carrera definida por la Escuela de Informática de Ciudad Real (UCLM).
proyectos geek
Esta normativa estaba escrita con normas de 2007 y hasta no hace pocos días no se ha publicado una nueva normativa. Aunque ya no tengo la necesidad de leerla para hacer un nuevo pfc, si me ha surgido la curiosidad de cuales son los cambios que realmente se han llevado a cabo.
El problema, es que ambos documentos son dos PDFs y no se exponen de forma clara cuales han sido los cambios. Aunque quizás la escuela podría haber hecho un repositorio de código con el texto, tal cual como hacen otras instituciones alemanas para la publicación de leyes, no es el caso. Pero explicaré en este artículo como podemos ver estos simples cambios.
Lo primero que necesitamos es obtener ambos pdfs, después con la herramienta pdftotext convertiremos los pdf a texto crudo, donde no existe formato, pero si podemos conservar la forma del contenido (layout) con bastante precisión.
Una vez tenemos las normativas en texto crudo, podemos aplicar el comando diff y comparar lado por lado o bien generar un fichero con las diferencias.
Como la automatización es importante por si cambia de nuevo en un futuro, he creado un pequeño script llamado esi-pfc-differ.sh en mi cuenta github que hace exactamente esos objetivos.
Por otro lado, si no quieres complicaciones y quieres algo mas rápido, he alojado las diferencias generadas como un archivo en un pastebin (lo hubiese hecho en un gist, pero parece que había problemas en github en esos momentos).
Este método puede aplicarse a la mayoría de archivos pdf, por lo que es muy conveniente para detectar pequeños cambios.