为了账号安全,请及时绑定邮箱和手机立即绑定

我如何将pdfminer用作库

我如何将pdfminer用作库

翻阅古今 2019-11-23 11:02:58
我正在尝试使用pdfminer从pdf获取文本数据。我可以使用pdfminer命令行工具pdf2txt.py将数据成功提取到.txt文件中。我目前正在执行此操作,然后使用python脚本清理.txt文件。我想将pdf提取过程合并到脚本中,从而节省了一步。当我找到此链接时,我以为自己正在研究某些东西,但是任何解决方案都没有成功。也许那里列出的功能需要再次更新,因为我使用的是pdfminer的较新版本。我也尝试了此处显示的功能,但是也没有用。我尝试的另一种方法是使用调用脚本内的脚本os.system。这也不成功。我正在使用Python版本2.7.1和pdfminer版本20110227。
查看完整描述

3 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

这是我最终制作的对我有用的清理版本。给定其文件名,以下代码仅以PDF形式返回该字符串。我希望这可以节省一些时间。


from pdfminer.pdfinterp import PDFResourceManager, process_pdf

from pdfminer.converter import TextConverter

from pdfminer.layout import LAParams

from cStringIO import StringIO


def convert_pdf(path):


    rsrcmgr = PDFResourceManager()

    retstr = StringIO()

    codec = 'utf-8'

    laparams = LAParams()

    device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)


    fp = file(path, 'rb')

    process_pdf(rsrcmgr, device, fp)

    fp.close()

    device.close()


    str = retstr.getvalue()

    retstr.close()

    return str


查看完整回答
反对 回复 2019-11-23
?
侃侃无极

TA贡献2051条经验 获得超10个赞

这是与最新版本一起使用的新解决方案:


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


def convert_pdf_to_txt(path):

    rsrcmgr = PDFResourceManager()

    retstr = StringIO()

    codec = 'utf-8'

    laparams = LAParams()

    device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)

    fp = file(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)

    fp.close()

    device.close()

    str = retstr.getvalue()

    retstr.close()

    return str


查看完整回答
反对 回复 2019-11-23
  • 3 回答
  • 0 关注
  • 450 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信