• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Python解析并读取PDF文件内容的方法

python 搞代码 4年前 (2022-01-09) 22次浏览 已收录 0个评论

这篇文章主要介绍了Python解析并读取PDF文件内容的方法,结合实例形式分别描述了Python2.7在win32与win64环境下实现读取pdf的相关操作技巧,需要的朋友可以参考下

本文实例讲述了Python解析并读取PDF文件内容的方法。分享给大家供大家参考,具体如下:

一、问题描述

利用python,去读取pdf文本内容。

二、效果

三、运行环境

python2.7

四、需要安装的库

pip install pdfminer

五、实现源代码

代码1(win64)

# coding=utf-8import sysreload(sys)sys.setdefaultencoding('utf-8')import timetime1=time.time()import os.pathfrom pdfminer.pdfparser import PDFParser,PDFDocumentfrom pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreterfrom pdfminer.converter import PDFPageAggregatorfrom pdfminer.layout import LTTextBoxHorizontal,LAParamsfrom pdfminer.pdfinterp import PDFTextExtractionNotAllowedresult=[]class CPdf2TxtManager():  def __init__(self):    '''''    Constructor    '''  def changePdfToText(self, filePath):    file = open(path, 'rb') # 以二进制读模式打开    #用文件对象来创建一个pdf文档分析器    praser = PDFParser(file)    # 创建一个PDF文档    doc = PDFDocument()    # 连接分析器 与文档对象    praser.set_document(doc)    doc.set_parser(praser)    # 提供初始化密码    # 如果没有密码 就创建一个空的字符串    doc.initialize()    # 检测文档是否提供txt转换,不提供就忽略    if not doc.is_extractable:      raise PDFTextExtractionNotAllowed    # 创建PDf 资源管理器 来管理共享资源    rsrcmgr = PDFResourceManager()    # 创建一个PDF设备对象    laparams = LAParams()    device = PDFPageAggregator(rsrcmgr, laparams=laparams)    # 创建一个PDF解释器对象    interpreter = PDFPageInterpreter(rsrcmgr, device)    pdfStr = ''    # 循环遍历列表,每次处理一个page的内容    for page in doc.get_pages(): # doc.get_pages() 获取page列表      interpreter.process_page(page)      # 接受该页面的LTPage对象      layout = device.get_result()      for x in layout:        if hasattr(x, "get_text"):          # print x.get_text()          result.append(x.get_text())          fileNames = os.path.splitext(filePath)          with open(fileNames[0] + '.txt','wb') as f:            results = x.get_text()            print(results)            f.write(results + '\n')if __name__ == '__main__':  '''''   解析pdf 文本,保存到txt文件中  '''  path = u'C:/data3.pdf'  pdf2TxtManager = CPdf2TxtManager()  pdf2TxtManager.changePdfToText(path)  # print result[0]  time2 = time.time()  print u'ok,解析pdf结束!'  print u'总共耗时:' + str(time2 - time1) + 's'

代码2(win32)

# coding=utf-8import sysreload(sys)sys.setdefaultencoding('utf-8')import timetime1=time.time()import os.pathfrom pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreterfrom pdfminer.converter import PDFPageAggregatorfrom pdfminer.layout import LAParamsfrom pdfminer.pdfpage import PDFTextExtractionNotAllowedfrom pdfminer.pdfparser import PDFParserfrom pdfminer.pdfdocument <div style="color:transparent">本文来源gaodai.ma#com搞##代!^码网(</div>import PDFDocumentfrom pdfminer.pdfpage import PDFPageresult=[]class CPdf2TxtManager():  def __init__(self):    '''''    Constructor    '''  def changePdfToText(self, filePath):    file = open(path, 'rb') # 以二进制读模式打开    #用文件对象来创建一个pdf文档分析器    praser = PDFParser(file)    # 创建一个PDF文档    doc = PDFDocument(praser)    # 检测文档是否提供txt转换,不提供就忽略    if not doc.is_extractable:      raise PDFTextExtractionNotAllowed    # 创建PDf 资源管理器 来管理共享资源    rsrcmgr = PDFResourceManager()    # 创建一个PDF设备对象    laparams = LAParams()    device = PDFPageAggregator(rsrcmgr, laparams=laparams)    # 创建一个PDF解释器对象    interpreter = PDFPageInterpreter(rsrcmgr, device)    pdfStr = ''    # 循环遍历列表,每次处理一个page的内容    for page in PDFPage.create_pages(doc): # doc.get_pages() 获取page列表      interpreter.process_page(page)      # 接受该页面的LTPage对象      layout = device.get_result()      for x in layout:        if hasattr(x, "get_text"):          # print x.get_text()          result.append(x.get_text())          fileNames = os.path.splitext(filePath)          with open(fileNames[0] + '.txt','wb') as f:            results = x.get_text()            print(results)            f.write(results + '\n')if __name__ == '__main__':  '''''   解析pdf 文本,保存到txt文件中  '''  path = u'C:/36.pdf'  pdf2TxtManager = CPdf2TxtManager()  pdf2TxtManager.changePdfToText(path)  # print result[0]  time2 = time.time()  print u'ok,解析pdf结束!'  print u'总共耗时:' + str(time2 - time1) + 's'

相关推荐:

Python实现抓取HTML网页并以PDF文件形式保存的方法

以上就是Python解析并读取PDF文件内容的方法的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python解析并读取PDF文件内容的方法

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址