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.