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多线程同步Lock、RLock、Semaphore、Event实例
Nov 21 Python
Python常见加密模块用法分析【MD5,sha,crypt模块】
May 24 Python
解决pip install xxx报错SyntaxError: invalid syntax的问题
Nov 30 Python
在PyCharm中批量查找及替换的方法
Jan 20 Python
python实现贪吃蛇游戏
Mar 21 Python
python虚拟环境的安装和配置(virtualenv,virtualenvwrapper)
Aug 09 Python
使用OpCode绕过Python沙箱的方法详解
Sep 03 Python
python实现的config文件读写功能示例
Sep 24 Python
python中利用matplotlib读取灰度图的例子
Dec 07 Python
tensorflow之tf.record实现存浮点数数组
Feb 17 Python
如何用python开发Zeroc Ice应用
Jan 29 Python
浅谈哪个Python库才最适合做数据可视化
Jun 28 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
Windows下Apache + PHP SESSION丢失的解决过程全纪录
2015/04/07 PHP
PHP7如何开启Opcode打造强悍性能详解
2018/05/11 PHP
PHP生成zip压缩包的常用方法示例
2019/08/22 PHP
php面试实现反射注入的详细方法
2019/09/30 PHP
HTML颜色选择器实现代码
2010/11/23 Javascript
基于JavaScript实现继承机制之调用call()与apply()的方法详解
2013/05/07 Javascript
js获取当前月的第一天和最后一天的小例子
2013/11/18 Javascript
使用jQuery时Form表单元素ID和name命名大忌
2014/03/06 Javascript
JavaScript动态加载样式表的方法
2015/03/21 Javascript
Vue.js报错Failed to resolve filter问题的解决方法
2016/05/25 Javascript
jQuery post数据至ashx实例详解
2016/11/18 Javascript
js querySelector() 使用方法
2016/12/21 Javascript
zTree树形插件异步加载方法详解
2017/06/14 Javascript
vue component组件使用方法详解
2017/07/14 Javascript
Vue实现一个返回顶部backToTop组件
2017/07/25 Javascript
vue引入axios同源跨域问题
2018/09/27 Javascript
实现一个 Vue 吸顶锚点组件方法
2019/07/10 Javascript
python中join()方法介绍
2018/10/11 Python
利用Python将文本中的中英文分离方法
2018/10/31 Python
Python将列表中的元素转化为数字并排序的示例
2019/12/25 Python
解决Pytorch自定义层出现多Variable共享内存错误问题
2020/06/28 Python
python爬虫判断招聘信息是否存在的实例代码
2020/11/20 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
2021/01/18 Python
cosme官方海外旗舰店:日本最大化妆品和美容产品的综合口碑网站
2017/01/18 全球购物
一站式跨境收款解决方案:Payoneer(派安盈)
2018/09/06 全球购物
navabi英国:设计师大码女装
2019/06/25 全球购物
澳大利亚厨房和家用电器购物网站:Bing Lee
2021/01/11 全球购物
儿媳婚宴答谢词
2014/01/14 职场文书
十佳班主任事迹材料
2014/01/18 职场文书
基督教婚礼主持词
2014/03/14 职场文书
相亲活动方案
2014/08/26 职场文书
2014年管理人员工作总结
2014/12/01 职场文书
2016优秀教师先进个人事迹材料
2016/02/25 职场文书
基于Redis的List实现特价商品列表功能
2021/08/30 Redis
详解MySql中InnoDB存储引擎中的各种锁
2022/02/12 MySQL