我想用pdfminer
(版本 20140328)提取 pdf。
这是提取pdf的代码:
import sys
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.pdfpage import PDFPage
from pdfminer.converter import XMLConverter, HTMLConverter, TextConverter
from pdfminer.layout import LAParams
from cStringIO import StringIO
import urllib2
def pdf_to_string(data):
fp = StringIO(data)
rsrcmgr = PDFResourceManager()
retstr = StringIO()
codec = 'utf-8'
laparams = LAParams()
device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
# Create a PDF interpreter object.
interpreter = PDFPageInterpreter(rsrcmgr, device)
# Process each page contained in the document.
for page in PDFPage.get_pages(fp):
interpreter.process_page(page)
data = retstr.getvalue()
return data
pdf_url="http://www.consilium.europa.eu/uedocs/cms_data/docs/pressdata/en/ecofin/140836.pdf"
file_object = urllib2.urlopen(urllib2.Request(pdf_url)).read()
string=pdf_to_string(file_object)
这是pdf的截图:
问题是pdfminer
它不是水平读取(人然后位置)而是在列中(所有人然后他们各自的位置):
Belgium:
Mr Koen GEENS
Bulgaria:
Mr Petar CHOBANOV
Czech Republic:
Mr Radek URBAN
Minister for Finance, with responsibility for the Civil
Service
Minister for Finance
Deputy Minister for Finance
如何使pdfminer
文本水平阅读?