2013-01-08 49 views

Trả lời

30

Hãy thử 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 

Dưới đây là kết quả:

>>> [{'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'}] 

Mọi chi tiết, nhìn vào hướng dẫn này: A lightweight XMP parser for extracting PDF metadata in Python.

+1

Một heads-up: tác giả của pdfminer nói nó không tương thích với Python 3, ít nhất kể từ ngày của bài viết này ([link] (https://github.com/euske/pdfminer/)) – JSmyth

+8

Kể từ tháng 11 năm 2013, "Lớp PDFDocument hiện nhận đối tượng PDFParser làm đối số. PDFDocument.set_parser() và PDFParser.set_document() bị xóa". Vì vậy, bạn chỉ có thể làm doc = PDFDocument (parser), và bỏ qua các cuộc gọi đến set_document, set_parser, và khởi tạo. –

+0

@JSmyth [Chỉ số PyPi] (https://pypi.python.org/pypi?%3Aaction=search&term=pdfminer&submit=search) hiện liệt kê ba nhánh «pdfminer' hoạt động tương thích với Python 3.' pip search pdfminer' – zero2cx

3

Tôi đã triển khai điều này bằng cách sử dụng pyPdf. Vui lòng xem mã mẫu bên dưới.

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

Output:

{'/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'} 

Lưu ý: pyPdf homepage nói nó không còn được duy trì.

+1

Không sử dụng 'tệp', sử dụng' mở' để thay thế. –

+2

Lưu ý rằng pyPdf được đánh dấu trên trang chủ không được hỗ trợ nữa. –

5

Đối với Python 3 thấy PyPDF2 với ví dụ mã từ @Khaleel cập nhật thành:

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

Cài đặt sử dụng pip install PyPDF2.

1

Đối với Python 3 và pdfminer mới (pip cài đặt 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) 
Các vấn đề liên quan