Buenas a todos, en el post de hoy continuaremos la cadena que iniciamos ayer sobre línea temporal de documentos PDF, hablando del software "forensic-pdf.py", que desarrollaremos con el fin de dada la ruta local donde se ha localizado un documento, extraer toda la posible información sobre sus metadatos.
Para esta labor haremos uso de las librerías de PyPDF2, que podréis descargar desde el siguiente enlace:
De esta librería ya os hemos hablado en anteriores post, como éste:
Y con la que podréis de forma sencilla, mediante la llamada a la función getDocumentInfo(), extraer todos los metadatos de un PDF, pasado por cabecera.
En el siguiente código encontraréis un ejemplo de uso, que os permitirá acompañar al bat desarrollado ayer para extraer los metadatos de todos los documentos PDF alojados en un ordenador:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import PyPDF2
import optparse
from PyPDF2 import PdfFileReader
def meta(fileName):
pdff = PdfFileReader(file(fileName, 'rb'))
doc = pdff.getDocumentInfo()
print 'Doc: ' + str(fileName)
for metai in doc:
print '- ' + metai + ':' + doc[metai]
def main():
parser = optparse.OptionParser('usage %prog "+\
"-F <PDF file name>')
parser.add_option('-F', dest='filename', type='string',\
help='PDF file name')
(options, args) = parser.parse_args()
filename = options.filename
if filename == None:
print parser.usage
exit(0)
else:
meta(filename)
if __name__ == '__main__':
main()
La salida sería parecida a la siguiente:
¿Sencillo verdad? Una forma rápida sin duda para construir una línea temporal de documentos PDF de un sistema. Ahora podréis jugar con el código python y modificar la salida para adaptarla a vuestros informes o exportarla en algún formato tipo CSV, por ejemplo, para aplicar filtros con excel. Las posibilidades son infinitas.
Saludos!