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定时器使用示例分享
Feb 16 Python
如何将python中的List转化成dictionary
Aug 15 Python
python实现冒泡排序算法的两种方法
Mar 10 Python
使用Python写一个小游戏
Apr 02 Python
python3下实现搜狗AI API的代码示例
Apr 10 Python
深入flask之异步非堵塞实现代码示例
Jul 31 Python
Python Numpy 自然数填充数组的实现
Nov 28 Python
python爬虫爬取监控教务系统的思路详解
Jan 08 Python
python环境下安装opencv库的方法
Mar 05 Python
基于opencv实现简单画板功能
Aug 02 Python
pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作
May 22 Python
python3+PyQt5+Qt Designer实现界面可视化
Jun 10 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学习之 数组声明
2011/06/09 PHP
php实现按照权重随机排序数据的方法
2015/01/09 PHP
PHP中filter函数校验数据的方法详解
2015/07/31 PHP
php集成动态口令认证
2016/07/21 PHP
jquery中的sortable排序之后的保存状态的解决方法
2010/01/28 Javascript
同域jQuery(跨)iframe操作DOM(示例代码)
2013/12/13 Javascript
nodejs实现获取当前url地址及url各种参数值
2015/06/25 NodeJs
FullCalendar日历插件应用之数据展现(一)
2015/12/23 Javascript
JS+Canvas实现的俄罗斯方块游戏完整实例
2016/12/12 Javascript
Angularjs中使用layDate日期控件示例
2017/01/11 Javascript
JS实现元素上下左右移动效果
2017/10/18 Javascript
javascript自定义事件功能与用法实例分析
2017/11/08 Javascript
浅析JavaScript中的特殊数据类型
2017/12/15 Javascript
JS实现在文本指定位置插入内容的简单示例
2017/12/22 Javascript
记一次用vue做的活动页的方法步骤
2019/04/11 Javascript
小程序实现左滑删除效果
2019/07/25 Javascript
layui 实现表格某一列显示图标
2019/09/19 Javascript
[02:24]DOTA2亚洲邀请赛 NAVI战队出场宣传片
2015/02/07 DOTA
[01:01:23]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第一场 11.26
2020/11/30 DOTA
微信跳一跳小游戏python脚本
2018/01/05 Python
Python装饰器原理与用法分析
2018/04/30 Python
简单了解python PEP的一些知识
2019/07/13 Python
详解使用django-mama-cas快速搭建CAS服务的实现
2019/10/30 Python
python os模块常用的29种方法使用详解
2020/06/02 Python
Python调用jar包方法实现过程解析
2020/08/11 Python
通过代码实例解析Pytest运行流程
2020/08/20 Python
Manuka Doctor美国官网:麦卢卡蜂蜜和蜂毒护肤
2016/12/25 全球购物
在印度上传处方,在线订购药品:Medlife
2019/03/28 全球购物
前台接待岗位职责
2013/12/03 职场文书
个人近期表现材料
2014/02/11 职场文书
产品设计开发计划书
2014/05/07 职场文书
警察群众路线对照检查材料思想汇报
2014/10/01 职场文书
房屋出售授权委托书
2014/10/12 职场文书
环保宣传语大全
2015/07/13 职场文书
2015年工商局个人工作总结
2015/07/23 职场文书
Java时间工具类Date的常用处理方法
2022/05/25 Java/Android