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分析学校四六级过关情况
Nov 22 Python
理论讲解python多进程并发编程
Feb 09 Python
Python中的函数式编程:不可变的数据结构
Oct 08 Python
python 定义n个变量方法 (变量声明自动化)
Nov 10 Python
python实现flappy bird小游戏
Dec 24 Python
Python Django框架单元测试之文件上传测试示例
May 17 Python
tensorflow 查看梯度方式
Feb 04 Python
Python标准库shutil模块使用方法解析
Mar 10 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
Mar 17 Python
Python3中小括号()、中括号[]、花括号{}的区别详解
Nov 15 Python
详解java调用python的几种用法(看这篇就够了)
Dec 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 文件上传系统手记
2009/10/26 PHP
php递归获取目录内文件(包含子目录)封装类分享
2013/12/25 PHP
PHP根据IP判断地区名信息的示例代码
2014/03/03 PHP
apache和PHP如何整合在一起
2015/10/12 PHP
php设计模式之适配器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
Display SQL Server Login Mode
2007/06/21 Javascript
JavaScript弹出新窗口并控制窗口移动到指定位置的方法
2015/04/06 Javascript
常常会用到的截取字符串substr()、substring()、slice()方法详解
2015/12/16 Javascript
解决jQuery ajax请求在IE6中莫名中断的问题
2016/06/20 Javascript
js实现四舍五入完全保留两位小数的方法
2016/08/02 Javascript
浅谈webpack 自动刷新与解析
2018/04/09 Javascript
Vue中props的详解
2019/05/16 Javascript
JavaScript实现Tab选项卡切换
2020/02/13 Javascript
[02:51]DOTA2英雄基础教程 风暴之灵
2013/12/23 DOTA
[05:09]第二届DOTA2亚洲邀请赛决赛日比赛集锦:iG 3:0 OG夺冠
2017/04/05 DOTA
[01:22:29]真视界:2019年国际邀请赛总决赛
2020/01/29 DOTA
Python编写屏幕截图程序方法
2015/02/18 Python
python3读取MySQL-Front的MYSQL密码
2017/05/03 Python
PyCharm2019安装教程及其使用(图文教程)
2019/09/29 Python
python 实现读取csv数据,分类求和 再写进 csv
2020/05/18 Python
详解Canvas实用库Fabric.js使用手册
2019/01/07 HTML / CSS
服务质量承诺书
2014/03/27 职场文书
公开承诺书格式
2014/05/21 职场文书
村道德模范事迹材料
2014/08/28 职场文书
学生逃课检讨书1000字
2014/10/20 职场文书
学校元旦晚会开场白
2014/12/14 职场文书
超市工作总结范文2014
2014/12/19 职场文书
培训班通知
2015/04/25 职场文书
幼儿园家长反馈意见
2015/06/03 职场文书
圣贤教育改变命运观后感
2015/06/16 职场文书
正规欠条模板
2015/07/03 职场文书
有关保护环境的宣传标语100条
2019/08/07 职场文书
SQLServer2008提示评估期已过解决方案
2021/04/12 SQL Server
JS Canvas接口和动画效果大全
2021/04/29 Javascript
Win10 和 Win11可以共存吗? win10/11产品生命周期/服务更新介绍
2021/11/21 数码科技
分享很少见很有用的SQL功能CORRESPONDING
2022/08/05 MySQL