Un dÃa me pasaron cientos de files pdfs, y la consigna de buscar información relevante en ellos, lo primero que me vino a la mente es "ya me jodÃ" (pa que soy polÃtico), bueno el tema es que dije "na nay no voy a abrir pdf por pdf y a buscar en cada uno de ellos", bueno el tema es que si tuve que hacerlo porque el tiempo ganaba pero me quedo la duda de que hacer si es que por algún motivo me llegaba algo asà nuevamente, de hecho ya llego otra remesa más grande de pdfs por lo mismo.
Probé con varios programitas libres pero ninguno satisfacÃa mis necesidades, buscar en TODO el conjunto de pdfs entregados, entonces dije, lo programo y se acabó y empecé con el reto, el primer problema, el lenguaje, la verdad ni lo pensé mucho rato, de frente era php, python, c ó c++, como ya estoy saturado de php, como ya me aburrió python, como no encontré buenas librerÃas en c entonces cogà el Cer bús++ y a programar.
El producto final tiene que hacer lo siguiente:
1. Cargar un pdf o directorio (con subdirectorios de pdfs) al software
2. Abrir cada pdf pasarlo a texto y subirlo a una base de datos PostgreSQL
3. PostgreSQL debe indexar los textos para poder hacer búsquedas dentro de los textos de palabras o frases que me interese detectar
4. El software debe retornar el/los pdf con el texto y en que páginas aparece
De momento ya tengo parte del punto 1, para ello usé como dije C++, QT4 y Poppler, una librerÃa con soporte en C++ para manipular pdfs, ahà aprendà una cosa interesante, los pdfs no guardan "texto" plano dentro de si, no es como un HTML (siempre pensé eso) hay que hacer ciertas cosas interesantes para obtener los datos.
Bueno aquà les dejo el "ejecutable" del programa, de momento no voy a colocar el código fuente del proyecto porque como estuve en etapa de investigación de como funcionaba la librerÃa está bien (recontra en realidad) cochino, asà que primero quiero acabar el tema básico de indexar y buscar con el PostgreSQL y luego ya lo subiré para más aportes, al menos para algunas personas ya puede servir debido a que ya obtiene el texto del pdf y lo pueden copiar y pegar en otro lado.
Para cargar el PDF solo le dan al boton "Subir File", requieren tener instalado KDE (ni sueñen que tendrá soporte para gnome esto), y las librerÃas de Poppler, ojo si no jala no pidan soporte NO LO VOY A DAR, al menos no por el momento.