Lecture des propriétés/métadonnées PDF en Python

Comment puis-je lire les propriétés/métadonnées comme le titre, L'auteur, le sujet et les mots clés stockés dans un fichier PDF en utilisant Python?

29
demandé sur wolφi 2013-01-08 10:13:15

4 réponses

pdfminer:

from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument

fp = open('diveintopython.pdf', 'rb')
parser = PDFParser(fp)
doc = PDFDocument(parser)

print doc.info  # The "Info" metadata

Voici le résultat:

>>> [{'CreationDate': 'D:20040520151901-0500',
  'Creator': 'DocBook XSL Stylesheets V1.52.2',
  'Keywords': 'Python, Dive Into Python, tutorial, object-oriented, programming, documentation, book, free',
  'Producer': 'htmldoc 1.8.23 Copyright 1997-2002 Easy Software Products, All Rights Reserved.',
  'Title': 'Dive Into Python'}]

Pour plus d'info, voir ce tutoriel: un analyseur XMP léger pour extraire les métadonnées PDF en Python.

34
répondu namit 2015-09-07 05:45:22
PyPDF2 avec le code d'exemple de @Khaleel mis à jour à:

from PyPDF2 import PdfFileReader
pdf_toread = PdfFileReader(open("test.pdf", "rb"))
pdf_info = pdf_toread.getDocumentInfo()
print(str(pdf_info))

installer en utilisant pip install PyPDF2.

6
répondu Morten Zilmer 2016-10-08 11:31:14

j'ai implémenté ceci en utilisant pyPdf. Consultez l'exemple de code ci-dessous.

from pyPdf import PdfFileReader
pdf_toread = PdfFileReader(open("doc2.pdf", "rb"))
pdf_info = pdf_toread.getDocumentInfo()
print str(pdf_info)

Sortie:

{'/Title': u'Microsoft Word - Agnico-Eagle - Complaint (00040197-2)', '/CreationDate': u"D:20111108111228-05'00'", '/Producer': u'Acrobat Distiller 10.0.0 (Windows)', '/ModDate': u"D:20111108112409-05'00'", '/Creator': u'PScript5.dll Version 5.2.2', '/Author': u'LdelPino'}

Remarque: pyPdf page d'accueil dit qu'il n'est plus maintenu.

5
répondu Khaleel 2018-01-22 14:22:14

pour Python 3 et le nouveau pdfminer (pip install pdfminer3k):

import os
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfparser import PDFDocument

fp = open("foo.pdf", 'rb')
parser = PDFParser(fp)
doc = PDFDocument(parser)
parser.set_document(doc)
doc.set_parser(parser)
if len(doc.info) > 0:
    info = doc.info[0]
    print(info)
1
répondu Rabash 2016-12-19 01:36:11