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

用于将PDF转换为文本的Python模块

用于将PDF转换为文本的Python模块

catspeake 2019-07-05 16:49:46
用于将PDF转换为文本的Python模块哪些是将PDF文件转换为文本的最佳Python模块?
查看完整描述

3 回答

?
有只小跳蛙

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

由于这些解决方案都不支持最新版本的PDFMiner,所以我编写了一个简单的解决方案,它将使用PDFMiner返回pdf文本。这将适用于那些获得导入错误的process_pdf

import sysfrom pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreterfrom pdfminer.pdfpage import PDFPagefrom pdfminer.converter 
import XMLConverter, HTMLConverter, TextConverterfrom pdfminer.layout import LAParamsfrom cStringIO import StringIOdef pdfparser(data):

    fp = file(data, 'rb')
    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()

    print dataif __name__ == '__main__':
    pdfparser(sys.argv[1])

参见下面为Python 3工作的代码:

import sysfrom pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreterfrom pdfminer.pdfpage import PDFPagefrom pdfminer.converter
 import XMLConverter, HTMLConverter, TextConverterfrom pdfminer.layout import LAParamsimport iodef pdfparser(data):

    fp = open(data, 'rb')
    rsrcmgr = PDFResourceManager()
    retstr = io.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()

    print(data)if __name__ == '__main__':
    pdfparser(sys.argv[1])


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

添加回答

举报

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