2 Portable Document Format (Pdf)
Total Page:16
File Type:pdf, Size:1020Kb
ESCOLA TÈCNICA SUPERIOR D’ENGINYERIA ELECTRÒNICA I INFORMÀTICA LA SALLE PROJECTE FI DE CARRERA ENGINYERIA EN INFORMÀTICA PDFLab ALUMNE PROFESSOR PONENT Yuri González Azín Mª Antonia Mozota Coloma ACTA DE L'EXAMEN DEL PROJECTE FI DE CARRERA Reunit el Tribunal qualificador en el dia de la data, l'alumne D. Yuri González Azín va exposar el seu Projecte de Fi de Carrera, el qual va tractar sobre el tema següent: PDFLab Acabada l'exposició i contestades per part de l'alumne les objeccions formulades pels Srs. membres del tribunal, aquest valorà l'esmentat Projecte amb la qualificació de Barcelona, VOCAL DEL TRIBUNAL VOCAL DEL TRIBUNAL PRESIDENT DEL TRIBUNAL Abstract Este proyecto se ha encargado de desarrollar la herramienta PDFLab. PDFLab es una herramienta capaz de leer ficheros PDF y generar una estructura intermedia para implementar cualquier otro tipo de aplicaciones. En este documento se puede apreciar todo el estudio que ha sido necesario para desarrollar este proyecto. Así como, un estudio de las aplicaciones que existen en el mercado. Y documentación técnica sobre las etapas del desarrollo, tales como, Análisis, Diseño e Implementación. i A mi padre porque este trabajo es tanto suyo como mío. iii Resumen En este proyecto se ha desarrollado PDFLab, una herramienta capaz de leer ficheros PDF y generar una estructura intermedia para implementar cualquier otro tipo de aplicaciones. En el desarrollo se comprende el estudio de la estructura interna de los ficheros PDF, estudio de las técnicas de desarrollo, tanto metodológicas como de diseño, toma de requerimientos, análisis de requerimientos, diseño orientado a objetos, implementación, pruebas y mantenimiento. En el capítulo de Introducción se proporciona el ámbito general del sistema PDFLab. En el capítulo de Portable Documento Format se presenta el estudio en el que se centra todo el proyecto: El Formato de Documento Portátil (PDF). En el capítulo Técnicas de compilación se presentan un conjunto de temas de la teoría del diseño e implementación de lenguajes de programación que han sido usados a lo largo de este proyecto. En el capítulo Estado del arte se estudia el mercado para localizar herramientas que trabajen con PDF. Éstas se han clasificado en diferentes categorías según su aplicación y uso del fichero PDF. En el capítulo Metodología se presenta la metodología de desarrollo que ha sido utilizada a lo largo de este proyecto: Programación Extrema. En el capítulo Requerimientos se define la Especificación de Requisitos Software (ERS) para el proyecto: PDFLab. Esta especificación se ha estructurado inspirándose en las directrices dadas por el estándar “IEEE Recomended Practice for Software Requeriments Specification ANSI/IEEE 830 1998”. En el capítulo Planificación se presenta el conjunto de iteraciones resultantes en el desarrollo del proyecto. En el capítulo Análisis Orientado a Objetos se analizan los requerimientos y se definen: El modelo estático, que identifica los objetos del sistema, y el modelo dinámico, que establece la colaboración de los objetos del sistema. En el capítulo Diseño Orientado a Objetos se presentan las tecnologías utilizadas para implementar el proyecto y los diagramas de clases de las clases principales del proyecto PDFLab. En el capítulo Implementación se facilitan los diagramas de paquetes de la implementación del proyecto. En el capítulo Estudio económico se ha realizado el estudio económico del coste del desarrollo del proyecto PDFLab En el capítulo Conclusiones concluye el proyecto dejando reflejadas las conclusiones y sensaciones que han ido surgiendo a lo largo del desarrollo de este proyecto. Y por último las Líneas de futuro donde se indican que progresión tendrá el proyecto y que posibilidades futuras se pueden implementar para aprovechar todo su potencial. v Índice 1 INTRODUCCIÓN ................................................................................................................. 3 2 PORTABLE DOCUMENT FORMAT (PDF) .................................................................... 7 2.1 DEFINICIÓN ......................................................................................................................... 7 2.2 HISTORIA ............................................................................................................................. 7 2.3 VERSIONES PDF ................................................................................................................ 11 2.4 ESTÁNDARES ISO .............................................................................................................. 12 2.5 ISO 32000-1 ....................................................................................................................... 17 3 TÉCNICAS DE COMPILACIÓN ..................................................................................... 33 3.1 EXPRESIONES REGULARES ............................................................................................... 33 3.2 SINTAXIS LIBRE DE CONTEXTO ........................................................................................ 34 3.3 GRAMÁTICA DE ATRIBUTOS ............................................................................................. 35 4 ESTADO DEL ARTE ......................................................................................................... 39 4.1 HERRAMIENTAS ................................................................................................................ 39 4.2 CLASIFICACIÓN ................................................................................................................. 45 4.3 PDFLAB ............................................................................................................................. 46 5 METODOLOGÍA ............................................................................................................... 51 5.1 MANIFIESTO ÁGIL ............................................................................................................ 51 5.2 PROGRAMACIÓN EXTREMA ............................................................................................. 52 6 REQUERIMIENTOS ......................................................................................................... 55 7 PLANIFICACIÓN DEL PROYECTO ............................................................................. 61 8 ANÁLISIS ORIENTADO A OBJETOS ........................................................................... 65 8.1 MODELO ESTÁTICO .......................................................................................................... 65 8.2 MODELO DINÁMICO .......................................................................................................... 66 9 DISEÑO ORIENTADO A OBJETOS ............................................................................... 69 9.1 TECNOLOGÍAS ................................................................................................................... 69 9.2 ARQUITECTURA DEL SISTEMA Y DIAGRAMA DE DESPLIEGUE........................................ 70 9.3 DIAGRAMA DE CLASES ..................................................................................................... 71 10 IMPLEMENTACIÓN ...................................................................................................... 75 10.1 DIAGRAMAS DE PAQUETES ............................................................................................. 75 10.2 PRUEBAS / TESTING: ....................................................................................................... 79 10.3 MANTENIMIENTO ............................................................................................................ 82 11 ESTUDIO ECONÓMICO ................................................................................................ 85 12 CONCLUSIONES ............................................................................................................. 89 13 LÍNEAS DE FUTURO...................................................................................................... 93 14 BIBLIOGRAFÍA ............................................................................................................... 97 15 ANEXO ............................................................................................................................ 101 vii Introducción En este capítulo se introduce y se proporciona el ámbito general del sistema PDFLab. 1 Introducción En mi trabajo final de carrera tuve el placer de estudiar qué y cómo son los Spiders, y de cómo adquieren, a fuerza bruta, cualquier texto plano que se encuentre entre etiquetas HTML. Ahora bien, no cualquier información substancial, se encuentra en este formato. Como he ido encontrando a lo largo de estos años, mucha de esta información fundamental está contenida en un formato de documento portátil o, comúnmente conocido, PDF. Así pues, a lo largo de todo este proyecto se centrarán todos los esfuerzos en lograr acceder a los documentos PDF y recopilar la información contenida en éstos y generar una estructura de objetos que contenga toda la información y contenido del PDF. PDFLab Análisis lexicográfico. Análisis sintáctico. Traducción dirigida por sintaxis. Desencriptación. Decodificación. Documento PDF Estructura de Objetos Una vez especificada la función principal de este sistema, antes de diseñarlo e implementarlo se debe: Realizar un estudio exhaustivo del estado del arte para reafirmar el porqué del proyecto. Estudiar la estructura interna de los ficheros PDF. Analizar