gpt4 book ai didi

python-3.x - 如何在Python 3中使用PDFminer.six?

转载 作者:行者123 更新时间:2023-12-03 16:05:33 24 4
gpt4 key购买 nike

我想使用pdfminer.six这是一个工具,可以与Python3一起使用以从PDF文档中提取信息。问题在于根本没有好的文档,也没有关于如何使用该工具的源代码示例。
我已经尝试过StackOverflow的一些代码,但是没有用。下面是我的代码。

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
我想要一些有关如何使用此工具从PDF获取数据的代码示例。

最佳答案

安装pdfminer.six或pdfminer3(https://github.com/gwk/pdfminer3/)
安装:pip install pdfminer3
我从3.6升级到3.7时切换到pdfminer3
我在python 3.7.3上的ubuntu和macos上使用

pdfminer3带有两个方便的工具:pdf2txt.py和dumppdf.py
检查源。相当小,易于理解。

以下是一个工作示例(一旦添加了pdf文件的位置)

from pdfminer3.layout import LAParams, LTTextBox
from pdfminer3.pdfpage import PDFPage
from pdfminer3.pdfinterp import PDFResourceManager
from pdfminer3.pdfinterp import PDFPageInterpreter
from pdfminer3.converter import PDFPageAggregator
from pdfminer3.converter import TextConverter
import io

resource_manager = PDFResourceManager()
fake_file_handle = io.StringIO()
converter = TextConverter(resource_manager, fake_file_handle, laparams=LAParams())
page_interpreter = PDFPageInterpreter(resource_manager, converter)

with open('/path/to/file.pdf', 'rb') as fh:

for page in PDFPage.get_pages(fh,
caching=True,
check_extractable=True):
page_interpreter.process_page(page)

text = fake_file_handle.getvalue()

# close open handles
converter.close()
fake_file_handle.close()

print(text)

关于python-3.x - 如何在Python 3中使用PDFminer.six?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56494070/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com