extracción de datos en un archico PDF de forma automatizada
A veces la extracción de datos de un archivo PDF no es tarea facil , sin embargo, existen algunas librerías libres que nos permiten hacer esta tarea más amena, una de ellas es Xpdf que contiene al comando pdftotext (su nombre lo dice todo xD).
En sistema like Unix, como Debian, lo podemos instalar a través de un
apt-get install xpdf
El problema, es que si contamos con un sistema sin entorno X, vamos a instalar algunas librerías que tal vez están demás como libxfont1, etc. En estos casos podemos usar la versión precompilada disponible desde la fuente del proyecto.
Tambien disponemos de ejecutables para Windows, los pueden descargar (tanto Windows como Linux) en http://www.foolabs.com/xpdf/download.html
Ejemplo
Si necesitamos analizar los datos del Padron Electoral, información pública disponible por servel, solo debemos ejecutar
pdftotext A0835008.pdf --layout
Y obtendremos un archivo con extensión .txt como el del screenshot.
En este caso, mantuvo casi intacto el layout de la tabla original en pdf, ahora solo nos queda analizar el archivo de texto línea por línea para extraer los datos, en este caso (los archivos del Padron Electoral) nos puede servir el siguiente script en python.
rawdata = open("A0835008.txt") users = [] for line in rawdata: if len(line) >= 157: user = {} user['nombre'] = line[0: 47].strip() user['rut'] = line[48:48+13].strip() users.append(user) for user in users: print user['rut'] rawdata.close()
Este pequeño script, solo captura el nombre y el rut (en base a las posiciones) del archivo, para luego solo imprimir el rut de los inscritos.