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随机生成彩票号码的方法
Mar 05 Python
Ubuntu下使用Python实现游戏制作中的切分图片功能
Mar 30 Python
pip命令无法使用的解决方法
Jun 12 Python
实例讲解python中的序列化知识点
Oct 08 Python
virtualenv 指定 python 解释器的版本方法
Oct 25 Python
python tkinter窗口最大化的实现
Jul 15 Python
Django框架创建mysql连接与使用示例
Jul 29 Python
python中struct模块之字节型数据的处理方法
Aug 27 Python
python openCV获取人脸部分并存储功能
Aug 28 Python
python numpy之np.random的随机数函数使用介绍
Oct 06 Python
python如何构建mock接口服务
Jan 28 Python
Python实战之大鱼吃小鱼游戏的实现
Apr 01 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
星际争霸中的热键
2020/03/04 星际争霸
PHP系列学习之日期函数使用介绍
2012/08/18 PHP
PHP 获取ip地址代码汇总
2015/07/05 PHP
利用PHP判断文件是否为图片的方法总结
2017/01/06 PHP
Mootools 1.2教程 滚动条(Slider)
2009/09/15 Javascript
比较详细的关于javascript 解析json的代码
2009/12/16 Javascript
简单的前端js+ajax 购物车框架(入门篇)
2011/10/29 Javascript
node.js中的socket.io入门实例
2014/04/26 Javascript
jQuery中data()方法用法实例
2014/12/27 Javascript
jQuery中:button选择器用法实例
2015/01/04 Javascript
JS表单验证的代码(常用)
2016/04/08 Javascript
ES6中Proxy与Reflect实现重载(overload)的方法
2017/03/30 Javascript
基于JavaScript实现验证码功能
2017/04/01 Javascript
JS仿QQ好友列表展开、收缩功能(第二篇)
2017/07/07 Javascript
vue组件中使用iframe元素的示例代码
2017/12/13 Javascript
Postman模拟发送带token的请求方法
2018/03/31 Javascript
微信小程序前端自定义分享的实现方法
2019/06/13 Javascript
vue实现图片懒加载的方法分析
2020/02/05 Javascript
JS实现页面数据懒加载
2020/02/13 Javascript
Vue如何循环提取对象数组中的值
2020/11/18 Vue.js
在Python的框架中为MySQL实现restful接口的教程
2015/04/08 Python
Python实现的文本简单可逆加密算法示例
2017/05/18 Python
远程部署工具Fabric详解(支持Python3)
2019/07/04 Python
python下载卫星云图合成gif的方法示例
2020/02/18 Python
使用Python发现隐藏的wifi
2020/03/04 Python
django表单中的按钮获取数据的实例分析
2020/07/31 Python
浅析python字符串前加r、f、u、l 的区别
2021/01/24 Python
从零实现一个自定义html5播放器的示例代码
2017/08/01 HTML / CSS
英国豪华装饰照明品牌的在线零售商:Inspyer Lighting
2019/12/10 全球购物
娇韵诗香港官网:Clarins香港
2020/08/13 全球购物
园长自我鉴定
2013/10/06 职场文书
精彩的广告词
2014/03/19 职场文书
园林专业毕业生自荐信
2014/07/04 职场文书
会议欢迎词
2015/01/23 职场文书
2016先进集体事迹材料范文
2016/02/25 职场文书
自动在Windows中运行Python脚本并定时触发功能实现
2021/09/04 Python