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 相关文章推荐
java直接调用python脚本的例子
Feb 16 Python
Python中logging模块的用法实例
Sep 29 Python
Python中常见的异常总结
Feb 20 Python
tensorflow获取变量维度信息
Mar 10 Python
使用python获取csv文本的某行或某列数据的实例
Apr 03 Python
python遍历一个目录,输出所有的文件名的实例
Apr 23 Python
python让列表倒序输出的实例
Jun 25 Python
pycharm重置设置,恢复默认设置的方法
Oct 22 Python
对python中数组的del,remove,pop区别详解
Nov 07 Python
python标准库OS模块函数列表与实例全解
Mar 10 Python
python使用梯度下降算法实现一个多线性回归
Mar 24 Python
Win10环境中如何实现python2和python3并存
Jul 20 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 Zip解压 文件在线解压缩的函数代码
2010/05/26 PHP
PHP中register_shutdown_function函数的基础介绍与用法详解
2017/11/28 PHP
PHP实现的多维数组去重操作示例
2018/07/21 PHP
js文本框输入点回车触发确定兼容IE、FF等
2013/11/19 Javascript
JavaScript实现多维数组的方法
2013/11/20 Javascript
JS实现仿QQ面板的手风琴效果折叠菜单代码
2015/09/11 Javascript
jQuery实现文字自动横移
2017/01/08 Javascript
微信小程序 利用css实现遮罩效果实例详解
2017/01/21 Javascript
js 用于检测类数组对象的函数方法
2017/05/02 Javascript
JavaScript字符串_动力节点Java学院整理
2017/06/27 Javascript
微信小程序实践之动态控制组件的显示/隐藏功能
2018/07/18 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS VG
2014/05/25 DOTA
Python线程详解
2015/06/24 Python
python实现爬虫下载美女图片
2015/07/14 Python
Python实现优先级队列结构的方法详解
2016/06/02 Python
python遍历文件夹下所有excel文件
2018/01/03 Python
python mac下安装虚拟环境的图文教程
2019/04/12 Python
Django QuerySet查询集原理及代码实例
2020/06/13 Python
CSS3 网页下拉菜单代码解释 中文翻译
2010/02/27 HTML / CSS
HTML5 Blob 实现文件下载功能的示例代码
2019/11/29 HTML / CSS
C#里面如何倒序排列一个数组的元素?
2013/06/21 面试题
软件设计的目标是什么
2016/12/04 面试题
会计实习生自我鉴定
2013/12/12 职场文书
迎新晚会主持词
2014/03/24 职场文书
大学生党校培训心得体会
2014/09/11 职场文书
共青团员自我评价范文
2014/09/14 职场文书
保密工作整改报告
2014/11/06 职场文书
2014年社区民政工作总结
2014/12/02 职场文书
节约用电通知
2015/04/25 职场文书
生日赠语
2015/06/23 职场文书
运动会主持词大全
2015/07/02 职场文书
军训阅兵新闻稿
2015/07/17 职场文书
小学思想品德教学反思
2016/02/24 职场文书
golang DNS服务器的简单实现操作
2021/04/30 Golang
解析原生JS getComputedStyle
2021/05/25 Javascript
Python pyecharts案例超市4年数据可视化分析
2022/08/14 Python