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 pass 语句使用示例
Mar 11 Python
Python中使用PyQt把网页转换成PDF操作代码实例
Apr 23 Python
Python3学习笔记之列表方法示例详解
Oct 06 Python
用TensorFlow实现戴明回归算法的示例
May 02 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
May 15 Python
python 的 openpyxl模块 读取 Excel文件的方法
Sep 09 Python
pytorch方法测试详解——归一化(BatchNorm2d)
Jan 15 Python
Python django框架开发发布会签到系统(web开发)
Feb 12 Python
如何实现更换Jupyter Notebook内核Python版本
May 18 Python
python 日志模块 日志等级设置失效的解决方案
May 26 Python
详解appium自动化测试工具(monitor、uiautomatorviewer)
Jan 27 Python
python代码实现备忘录案例讲解
Jul 26 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
完美的2个php检测字符串是否是utf-8编码函数分享
2014/07/28 PHP
php编程每天必学之表单验证
2016/03/01 PHP
Extjs学习过程中新手容易碰到的低级错误积累
2010/02/11 Javascript
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
2010/04/13 Javascript
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
2012/07/26 Javascript
js 单击式的下拉菜单效果实例
2013/08/13 Javascript
js设置function参数默认值(适合没有传参情况)
2014/02/24 Javascript
Bootstrap与KnockoutJs相结合实现分页效果实例详解
2016/05/03 Javascript
5种JavaScript脚本加载的方式
2017/01/16 Javascript
简单实现js菜单栏切换效果
2017/03/04 Javascript
Javascript实现一个简单的输入关键字添加标签效果实例
2017/06/01 Javascript
详谈Node.js之操作文件系统
2017/08/29 Javascript
webpack本地开发环境无法用IP访问的解决方法
2018/03/20 Javascript
在vue中使用公共过滤器filter的方法
2018/06/26 Javascript
vue 自定义提示框(Toast)组件的实现代码
2018/08/17 Javascript
vue实现带复选框的树形菜单
2019/05/27 Javascript
[18:32]DOTA2 HEROS教学视频教你分分钟做大人-谜团
2014/06/12 DOTA
Python处理RSS、ATOM模块FEEDPARSER介绍
2015/02/18 Python
django如何连接已存在数据的数据库
2018/08/14 Python
对python 操作solr索引数据的实例详解
2018/12/07 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
2019/07/23 Python
Java Spring项目国际化(i18n)详细方法与实例
2020/03/20 Python
python属于跨平台语言码
2020/06/09 Python
专门出售各种儿童读物的网站:Put Me In The Story
2016/08/07 全球购物
建筑人员岗位职责
2013/12/25 职场文书
《理想》教学反思
2014/02/17 职场文书
给全校老师的建议书
2014/03/13 职场文书
促销活动总结范文
2014/04/30 职场文书
环保倡议书300字
2014/05/15 职场文书
应聘会计求职信
2014/06/11 职场文书
幼儿园六一活动总结
2014/08/27 职场文书
市场营销工作计划书
2014/09/15 职场文书
员工工作能力评语
2014/12/31 职场文书
初二物理教学反思
2016/02/19 职场文书
一文帮你理解PReact10.5.13源码
2021/04/03 Javascript
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
2022/05/25 SQL Server