我一直在使用 pdfMiner 从图表中读取值,到目前为止它运行良好!
然而,有一个区域可以正确读取正确的数据,但以不可预测的方式,这意味着它将正确读取所有图形值,其顺序与它们出现的顺序完全不同。
这并不完全是一个问题,因为只要我知道,说最后一张图总是首先被读取,我可以围绕它构建我的程序。除了似乎 pdfMiner 在读取这些数据的方式上几乎完全不可预测之外,我找不到可辨别的模式。
这很可能是因为我对 pdfMiner 很不熟悉,所以我不完全确定它是如何工作的。所以是的,如果有人能指出我正确的方向,那将非常有帮助。
这是我的数据
这是我正在使用的转换代码:
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from cStringIO import StringIO
global values
print "Getting readable PDF"
rsrcmgr = PDFResourceManager()
retstr = StringIO()
codec = 'utf-8'
laparams = LAParams()
device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
fp = file("graphExtraction.pdf", 'rb')
interpreter = PDFPageInterpreter(rsrcmgr, device)
password = ""
maxpages = 0
caching = True
pagenos=set()
for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages, password=password,caching=caching, check_extractable=True):
interpreter.process_page(page)
fp.close()
device.close()
str = retstr.getvalue()
retstr.close()
values = str