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
12
INTRODUCCIÓN................................................................................................................. 3 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
678
REQUERIMIENTOS ......................................................................................................... 55 PLANIFICACIÓN DEL PROYECTO ............................................................................. 61 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 la estructura sintáctica de la estructura interna de los ficheros PDF. Definir la estructura de datos que se puede generar a partir de un PDF.
3
Portable Document Format
En este capítulo se presenta el estudio en el que se centra
todo el proyecto. El Formato de Documento Portátil
(PDF). Este capítulo introduce históricamente los acontecimientos importantes sucedidos a lo largo del tiempo relacionados con PDF y centra el estudio en la especificación de su implementación interna, basada en la actual norma ISO 32000-1:2008.
2 Portable Document Format (PDF)
2.1 Definición
PDF (acrónimo del inglés Portable Document Format, formato de documento portátil) es un formato de almacenamiento de documentos, desarrollado por la empresa Adobe
Systems.
2.2 Historia
John Warnock, cofundador de Adobe Systems, esboza el sistema ‘Camelot’. El objetivo de Camelot es básicamente:
1991
Capturar eficazmente documentos de cualquier aplicación. Enviar versiones electrónicas de estos documentos a cualquier parte. Ver e imprimir dichos documentos en cualquier equipo.
1992 1993 1994
Adobe libera la primera versión de PDF, nombre en clave ‘Carousel’, en Comdex, debutando y ganando el galardón “Best of Comdex”.
El 15 de Mayo de 1993, aparecen las primeras herramientas para crear y ver documentos PDF, Acrobat y Acrobat Reader.
Adobe Systems lanza Acrobat 2.0 junto con la versión PDF 1.1
7
1995 1996 1997
Adobe Systems lanza Acrobat 2.1 junto con la versión PDF 1.1 Adobe Systems lanza Acrobat 3.0 junto con la versión PDF 1.2
1998 1999
2000
Adobe Systems lanza Acrobat 4.0 junto con la versión PDF 1.3
Adobe Systems lanza Acrobat 4.05
8