python实现pdf转换成word/txt纯文本文件


Posted in Python onJune 07, 2018

本文实例为大家分享了python实现pdf转word/txt,供大家参考,具体内容如下

依赖包:pdfminer3k

可以通过pip安装;也可以到官网下载,解压,进入文件夹,输入命令setup.py install安装软件。

源代码:

#!/usr/bin/python 
# -*- coding: utf-8 -*- 
 
import sys 
import importlib 
importlib.reload(sys) 
 
from pdfminer.pdfparser import PDFParser,PDFDocument 
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter 
from pdfminer.converter import PDFPageAggregator 
from pdfminer.layout import * 
from pdfminer.pdfinterp import PDFTextExtractionNotAllowed 
 
''''' 
解析pdf文件,获取文件中包含的各种对象 
''' 
 
# 解析pdf文件函数 
def parse(pdf_path): 
  fp = open(pdf_path, 'rb') # 以二进制读模式打开 
  # 用文件对象来创建一个pdf文档分析器 
  parser = PDFParser(fp) 
  # 创建一个PDF文档 
  doc = PDFDocument() 
  # 连接分析器 与文档对象 
  parser.set_document(doc) 
  doc.set_parser(parser) 
 
  # 提供初始化密码 
  # 如果没有密码 就创建一个空的字符串 
  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) 
 
    # 用来计数页面,图片,曲线,figure,水平文本框等对象的数量 
    num_page, num_image, num_curve, num_figure, num_TextBoxHorizontal = 0, 0, 0, 0, 0 
 
    # 循环遍历列表,每次处理一个page的内容 
    for page in doc.get_pages(): # doc.get_pages() 获取page列表 
      num_page += 1 # 页面增一 
      interpreter.process_page(page) 
      # 接受该页面的LTPage对象 
      layout = device.get_result() 
      for x in layout: 
        if isinstance(x,LTImage): # 图片对象 
          num_image += 1 
        if isinstance(x,LTCurve): # 曲线对象 
          num_curve += 1 
        if isinstance(x,LTFigure): # figure对象 
          num_figure += 1 
        if isinstance(x, LTTextBoxHorizontal): # 获取文本内容 
          num_TextBoxHorizontal += 1 # 水平文本框对象增一 
          # 保存文本内容 
          with open(r'test.doc', 'a',encoding='utf-8') as f:  #生成doc文件的文件名及路径 
            results = x.get_text() 
            f.write(results) 
            f.write('\n') 
    print('对象数量:\n','页面数:%s\n'%num_page,'图片数:%s\n'%num_image,'曲线数:%s\n'%num_curve,'水平文本框:%s\n' 
       %num_TextBoxHorizontal) 
 
 
if __name__ == '__main__': 
  pdf_path = r'test.pdf' #pdf文件路径及文件名 
  parse(pdf_path)

此脚本只能将pdf文件转换成纯文本文件,没有任何格式。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python3中常用的处理时间和实现定时任务的方法的介绍
Apr 07 Python
用Python实现协同过滤的教程
Apr 08 Python
Perl中著名的Schwartzian转换问题解决实现
Jun 02 Python
举例讲解Python设计模式编程中的访问者与观察者模式
Jan 26 Python
Pycharm学习教程(4) Python解释器的相关配置
May 03 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
Nov 10 Python
python合并已经存在的sheet数据到新sheet的方法
Dec 11 Python
python利用跳板机ssh远程连接redis的方法
Feb 19 Python
Python3调用百度AI识别图片中的文字功能示例【测试可用】
Mar 13 Python
python 采用paramiko 远程执行命令及报错解决
Oct 21 Python
python用pip install时安装失败的一系列问题及解决方法
Feb 24 Python
python输入一个水仙花数(三位数) 输出百位十位个位实例
May 03 Python
Python实现调用另一个路径下py文件中的函数方法总结
Jun 07 #Python
python生成ppt的方法
Jun 07 #Python
python实现按长宽比缩放图片
Jun 07 #Python
python实现批量修改图片格式和尺寸
Jun 07 #Python
python实现批量图片格式转换
Jun 16 #Python
python脚本实现验证码识别
Jun 07 #Python
python 创建一个空dataframe 然后添加行数据的实例
Jun 07 #Python
You might like
生成缩略图
2006/10/09 PHP
PHP数据库操作之基于Mysqli的数据库操作类库
2014/04/19 PHP
PHP进程通信基础之信号量与共享内存通信
2017/02/19 PHP
PHP基于redis计数器类定义与用法示例
2018/02/08 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
JavaScript 高效运行代码分析
2010/03/18 Javascript
IE的有条件注释判定IE版本详解(附实例代码)
2012/01/04 Javascript
javascript五图轮播切换实用版
2012/08/17 Javascript
javascript的事件触发器介绍的实现
2014/06/05 Javascript
JavaScript获取网页中第一个链接ID的方法
2015/04/03 Javascript
Jquery注册事件实现方法
2015/05/18 Javascript
JQuery菜单效果的两个实例讲解(3)
2015/09/17 Javascript
jQuery插件Timelinr 实现时间轴特效
2015/10/04 Javascript
jquery form表单获取内容以及绑定数据
2016/02/24 Javascript
初步使用bootstrap快速创建页面
2016/03/03 Javascript
原生js实现新闻列表展开/收起全文功能
2017/01/20 Javascript
jQuery实现动态给table赋值的方法示例
2017/07/04 jQuery
微信小程序使用radio显示单选项功能【附源码下载】
2017/12/11 Javascript
非常漂亮的js烟花效果
2020/03/10 Javascript
python sort、sorted高级排序技巧
2014/11/21 Python
Hadoop中的Python框架的使用指南
2015/04/22 Python
python从list列表中选出一个数和其对应的坐标方法
2019/07/20 Python
简单了解python filter、map、reduce的区别
2020/01/14 Python
Python爬取12306车次信息代码详解
2020/08/12 Python
英国复古皮包品牌:Beara Beara
2018/07/18 全球购物
FC-Moto美国:欧洲最大的摩托车服装和头盔商店之一
2019/08/24 全球购物
函授毕业个人自我评价
2014/02/20 职场文书
公司领导班子对照材料
2014/08/18 职场文书
2014入党积极分子批评与自我批评思想报告
2014/10/06 职场文书
放假通知格式
2015/04/14 职场文书
关于成立领导小组的通知
2015/04/23 职场文书
2015年民兵整组工作总结
2015/07/24 职场文书
2016年寒假政治学习心得体会
2015/10/09 职场文书
技术入股协议书
2016/03/22 职场文书
Python实战之实现康威生命游戏
2021/04/26 Python
Java+swing实现抖音上的表白程序详解
2022/06/25 Java/Android