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 相关文章推荐
python中os操作文件及文件路径实例汇总
Jan 15 Python
Python xlrd读取excel日期类型的2种方法
Apr 28 Python
python修改字典内key对应值的方法
Jul 11 Python
Apache如何部署django项目
May 21 Python
使用CodeMirror实现Python3在线编辑器的示例代码
Jan 14 Python
在Pycharm中设置默认自动换行的方法
Jan 16 Python
Python生成rsa密钥对操作示例
Apr 26 Python
详解Python Qt的窗体开发的基本操作
Jul 14 Python
python 通过文件夹导入包的操作
Jun 01 Python
OpenCV 之按位运算举例解析
Jun 19 Python
如何通过python计算圆周率PI
Nov 11 Python
python 对图片进行简单的处理
Jun 23 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
php下实现一个阿拉伯数字转中文数字的函数
2008/07/10 PHP
PHP数据流应用的一个简单实例
2012/09/14 PHP
PHP中使用imagick实现把PDF转成图片
2015/01/26 PHP
php查询whois信息的方法
2015/06/08 PHP
CI框架无限级分类+递归的实现代码
2016/11/01 PHP
浅谈PHP的exec()函数无返回值排查方法(必看)
2017/03/31 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
Yii2框架实现登陆添加验证码功能示例
2018/07/12 PHP
PHP常量DIRECTORY_SEPARATOR原理及用法解析
2020/11/10 PHP
js获取图片大小的函数代码
2011/09/20 Javascript
THREE.JS入门教程(5)你应当知道的十件事
2013/01/24 Javascript
解析javascript系统错误:-1072896658的解决办法
2013/07/08 Javascript
jquery中event对象属性与方法小结
2013/12/18 Javascript
JS创建自定义表格具体实现
2014/02/11 Javascript
ajax请求乱码的解决方法(中文乱码)
2014/04/10 Javascript
使用js画图之圆、弧、扇形
2015/01/12 Javascript
js实现前端分页页码管理
2017/01/06 Javascript
js编写选项卡效果
2017/05/23 Javascript
基于JavaScript实现淘宝商品广告效果
2017/08/10 Javascript
js中apply()和call()的区别与用法实例分析
2018/08/14 Javascript
解决vue-cli项目打包出现空白页和路径错误的问题
2018/09/04 Javascript
vue src动态加载请求获取图片的方法
2018/10/17 Javascript
常见的浏览器存储方式(cookie、localStorage、sessionStorage)
2019/05/07 Javascript
更强大的vue ssr实现预取数据的方式
2019/07/19 Javascript
js实现简单的日历显示效果函数示例
2019/11/25 Javascript
用JS实现一个简单的打砖块游戏
2019/12/11 Javascript
理解Python中的类与实例
2015/04/27 Python
python+opencv3生成一个自定义纯色图教程
2020/02/19 Python
matplotlib相关系统目录获取方式小结
2021/02/03 Python
大学生自我评价怎样写好
2013/10/23 职场文书
教师的实习鉴定
2013/12/15 职场文书
水电工岗位职责
2014/02/12 职场文书
财务担保书范文
2014/04/02 职场文书
小学教师师德师风个人整改措施
2014/09/18 职场文书
向国旗敬礼活动总结
2014/09/27 职场文书
端午节寄语2015
2015/03/23 职场文书