如何使用Python阅读存储在PDF文件中的标题,作者,主题和关键字等属性/元数据?
答案 0 :(得分:38)
尝试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
这是输出:
>>> [{'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'}]
有关详情,请参阅本教程:A lightweight XMP parser for extracting PDF metadata in Python。
答案 1 :(得分:8)
对于Python 3,请参阅PyPDF2,将来自@Khaleel的示例代码更新为:
from PyPDF2 import PdfFileReader
pdf_toread = PdfFileReader(open("test.pdf", "rb"))
pdf_info = pdf_toread.getDocumentInfo()
print(str(pdf_info))
使用pip install PyPDF2
安装。
答案 2 :(得分:5)
注意:pyPdf homepage表示不再维护它。
我已使用pyPdf实现此功能。请参阅下面的示例代码。
from pyPdf import PdfFileReader
pdf_toread = PdfFileReader(open("doc2.pdf", "rb"))
pdf_info = pdf_toread.getDocumentInfo()
print str(pdf_info)
输出:
{'/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'}
答案 3 :(得分:2)
对于Python 3和新的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)
答案 4 :(得分:0)
尝试pdfreader 您可以如下访问文档目录元数据:
from pdfreader import PDFDocument
f = open("foo.pdf", 'rb')
doc = PDFDocument(f)
metadata = doc.root.Metadata