我正在寻找有关如何使用 PDFMiner 和 Python 从 PDF 文件中提取文本的文档或示例。
看起来 PDFMiner 更新了他们的 API,我发现的所有相关示例都包含过时的代码(类和方法已更改)。我发现可以更轻松地从 PDF 文件中提取文本的库使用旧的 PDFMiner 语法,因此我不确定如何执行此操作。
事实上,我只是在查看源代码,看看我是否能弄清楚。
最佳答案
这是使用当前版本的 PDFMiner(2016 年 9 月)从 PDF 文件中提取文本的工作示例
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from io import StringIO
def convert_pdf_to_txt(path):
rsrcmgr = PDFResourceManager()
retstr = StringIO()
codec = 'utf-8'
laparams = LAParams()
device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
fp = open(path, '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)
text = retstr.getvalue()
fp.close()
device.close()
retstr.close()
return text
PDFMiner 的结构最近发生了变化,因此这应该适用于从 PDF 文件中提取文本。
编辑 :截至 2018 年 6 月 7 日仍在工作。在 Python 3.x 版中验证
编辑:该解决方案适用于 2019 年 10 月 3 日的 Python 3.7。我使用了 2018 年 11 月发布的 Python 库
pdfminer.six
。关于python - 在python中使用PDFMiner从PDF文件中提取文本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26494211/