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正则表达式介绍
Aug 06 Python
Python作用域用法实例详解
Mar 15 Python
Python使用plotly绘制数据图表的方法
Jul 18 Python
轻量级的Web框架Flask 中模块化应用的实现
Sep 11 Python
python实现两个文件合并功能
Apr 01 Python
python实现整数的二进制循环移位
Mar 08 Python
python通过txt文件批量安装依赖包的实现步骤
Aug 13 Python
Pytorch之保存读取模型实例
Dec 30 Python
什么是python类属性
Jun 10 Python
Python爬虫headers处理及网络超时问题解决方案
Jun 19 Python
python学习笔记之多进程
Aug 06 Python
python实现A*寻路算法
Jun 13 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
对javascript和select部件的结合运用
2006/10/09 PHP
PHP中的CMS的涵义
2007/03/11 PHP
JpGraph php柱状图使用介绍
2011/08/23 PHP
php根据一个给定范围和步进生成数组的方法
2015/06/19 PHP
Zend Framework教程之响应对象的封装Zend_Controller_Response实例详解
2016/03/07 PHP
日期处理的js库(迷你版)--自建js库总结
2011/11/21 Javascript
js post提交调用方法
2014/02/12 Javascript
JS获取文本框,下拉框,单选框的值的简单实例
2014/02/26 Javascript
查询json的数据结构的8种方式简介
2014/03/10 Javascript
jquery选择器需要注意的问题
2014/11/26 Javascript
JavaScript函数的调用以及参数传递
2015/10/21 Javascript
BootStrap Validator使用注意事项(必看篇)
2016/09/28 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
2016/10/10 Javascript
使用Bootstrap + Vue.js实现添加删除数据示例
2017/02/27 Javascript
AngularJS之ionic 框架下实现 Localstorage本地存储
2017/04/22 Javascript
用angular实现多选按钮的全选与反选实例代码
2017/05/23 Javascript
vue脚手架中配置Sass的方法
2018/01/04 Javascript
微信小程序url传参写变量的方法
2018/08/09 Javascript
详解使用React制作一个模态框
2019/03/14 Javascript
Vue递归组件+Vuex开发树形组件Tree--递归组件的简单实现
2019/04/01 Javascript
Vue2.x和Vue3.x的双向绑定原理详解
2020/11/05 Javascript
[49:31]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第二场 1月29日
2021/03/11 DOTA
python实现搜索文本文件内容脚本
2018/06/22 Python
python MNIST手写识别数据调用API的方法
2018/08/08 Python
python之pexpect实现自动交互的例子
2019/07/25 Python
详解python破解zip文件密码的方法
2020/01/13 Python
CSS3 Backgrounds属性相关介绍
2011/05/11 HTML / CSS
英国最大的奢侈珠宝和手表网站:C W Sellors
2017/02/10 全球购物
法国发饰品牌:Alexandre De Paris
2018/12/04 全球购物
工作检讨书范文
2015/01/23 职场文书
奖励申请报告范文
2015/05/15 职场文书
新年晚会开场白
2015/05/29 职场文书
会计手工模拟做账心得体会
2016/01/22 职场文书
2016党员学习《反对自由主义》心得体会
2016/01/22 职场文书
Prometheus 监控MySQL使用grafana展示
2021/08/30 MySQL
MYSQL如何查看进程和kill进程
2022/03/13 MySQL