当前位置:主页 > python教程 > python基于pdfminer库提取pdf文字代码实例

python pdfminer库提取pdf文字的实现方法

发布:2019-11-24 21:52:55 157


给网友们整理pdfminer库相关的编程文章,网友崔萧玉根据主题投稿了本篇教程内容,涉及到python、提取pdf文字、python基于pdfminer库提取pdf文字代码实例相关内容,已被792网友关注,下面的电子资料对本篇知识点有更加详尽的解释。

python基于pdfminer库提取pdf文字代码实例

安装pdfminer 库

windows 下安装pdfminer3k

pip install pdfminer3k

Liunx 下安装pdfminer

pip install pdfminer

代码

from pdfminer.pdfparser import PDFParser, PDFDocument
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LAParams, LTTextBoxHorizontal
from pdfminer.pdfinterp import PDFTextExtractionNotAllowed, PDFResourceManager, PDFPageInterpreter
def pdfParse(path):
"""
pdf文字提取
:param path:文件路径
:return: 每页结果列表
"""
fp = open(path, 'rb') # 以二进制读模式打开
# 用文件对象来创建一个pdf文档分析器
praser = PDFParser(fp)
# 创建一个PDF文档
doc = PDFDocument()
# 连接分析器 与文档对象
praser.set_document(doc)
doc.set_parser(praser)
# 提供初始化密码
# 如果没有密码 就创建一个空的字符串
doc.initialize()
# 检测文档是否提供txt转换,不提供就忽略
if not doc.is_extractable:
 raise PDFTextExtractionNotAllowed
else:
 # 创建PDf 资源管理器 来管理共享资源
 rsrcmgr = PDFResourceManager()
 # 创建一个PDF设备对象
 laparams = LAParams()
 device = PDFPageAggregator(rsrcmgr, laparams=laparams)
 # 创建一个PDF解释器对象
 interpreter = PDFPageInterpreter(rsrcmgr, device)
 #每页文字内容
 results = []
 # 循环遍历列表,每次处理一个page的内容
 for page in doc.get_pages(): # doc.get_pages() 获取page列表
  interpreter.process_page(page)
  # 接受该页面的LTPage对象
  layout = device.get_result()
  # 这里layout是一个LTPage对象 里面存放着 这个page解析出的各种对象 一般包括LTTextBox, LTFigure, LTImage, LTTextBoxHorizontal 等等 想要获取文本就获得对象的text属性,
  for x in layout:
   if isinstance(x, LTTextBoxHorizontal):
    results.append(x.get_text())
 return results

该库是根据 迭代pdf每一页 进行文字提取, 也可以识别判断页码的功能

另外还有一个pypdf2 库也可以识别但是感觉不如这个准确

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。


参考资料

相关文章

  • anaconda中安装的python环境中没有pip3的问题及解决

    发布:2023-03-24

    这篇文章主要介绍了anaconda中安装的python环境中没有pip3的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


  • 如何解决Python抓取内容乱码问题

    发布:2020-02-04

    这篇文章主要介绍了Python解决抓取内容乱码问题(decode和encode解码),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学


  • python smtplib实现QQ邮箱发送邮件功能方法

    发布:2019-06-06

    这篇文章主要为大家详细介绍了python利用smtplib实现QQ邮箱发送邮件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • Python如何实用File文件的实现

    发布:2023-04-12

    本文主要介绍了Python如何实用File文件的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


  • python pandas写入excel文件的方法示例

    发布:2022-06-15

    给网友朋友们带来一篇关于pandas的教程,这篇文章主要介绍了python pandas写入excel文件的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


  • Python之parser.add_argument解读

    发布:2023-04-19

    这篇文章主要介绍了Python之parser.add_argument解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


  • Python3连接SQLServer、Oracle、MySql实例代码

    发布:2019-08-13

    这篇文章较详细的给大家介绍了Python3连接SQLServer、Oracle、MySql的方法,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧


  • python用fsolve、leastsq对非线性方程组求解方法

    发布:2019-06-05

    这篇文章主要为大家详细介绍了python用fsolve、leastsq对非线性方程组进行求解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


网友讨论