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 urlopen()函数 示例分享
Jun 12 Python
pytorch使用Variable实现线性回归
May 21 Python
Pycharm新手教程(只需要看这篇就够了)
Jun 18 Python
python装饰器常见使用方法分析
Jun 26 Python
python笔记之mean()函数实现求取均值的功能代码
Jul 05 Python
Python画图实现同一结点多个柱状图的示例
Jul 07 Python
python用线性回归预测股票价格的实现代码
Sep 04 Python
详解mac python+selenium+Chrome 简单案例
Nov 08 Python
pytorch实现建立自己的数据集(以mnist为例)
Jan 18 Python
Python定时器线程池原理详解
Feb 26 Python
Python selenium模拟手动操作实现无人值守刷积分功能
May 13 Python
Django分页器的用法你都了解吗
May 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
开源SNS系统-ThinkSNS
2008/05/18 PHP
PHP 处理TXT文件(打开/关闭/检查/读取)
2013/05/13 PHP
PHP中把stdClass Object转array的几个方法
2014/05/08 PHP
PHP实现事件机制实例分析
2015/06/26 PHP
php阿拉伯数字转中文人民币大写
2015/12/21 PHP
脚本吧 - 幻宇工作室用到js,超强推荐base.js
2006/12/23 Javascript
提高网站信任度的技巧
2008/10/17 Javascript
jQuery $.each的用法说明
2010/03/22 Javascript
javascript 全等号运算符使用说明
2010/05/31 Javascript
jQuery+CSS3实现3D立方体旋转效果
2015/11/10 Javascript
js微信分享API
2020/10/11 Javascript
详解Vue + Vuex 如何使用 vm.$nextTick
2017/11/20 Javascript
vue左右侧联动滚动的实现代码
2018/06/06 Javascript
vue使用代理解决请求跨域问题详解
2019/07/24 Javascript
微信小程序中限制激励式视频广告位显示次数(实现思路)
2019/12/06 Javascript
vue实现PC端分辨率适配操作
2020/08/03 Javascript
使用Python进行稳定可靠的文件操作详解
2013/12/31 Python
在Windows服务器下用Apache和mod_wsgi配置Python应用的教程
2015/05/06 Python
python实现windows下文件备份脚本
2018/05/27 Python
python使用turtle库绘制时钟
2020/03/25 Python
python中int与str互转方法
2018/07/02 Python
对python中的argv和argc使用详解
2018/12/15 Python
python绘制BA无标度网络示例代码
2019/11/21 Python
深入了解NumPy 高级索引
2020/07/24 Python
python 常见的反爬虫策略
2020/09/27 Python
印尼网上商店:Alfacart.com
2019/03/11 全球购物
汽车运用工程专业毕业生推荐信
2013/12/25 职场文书
会计学专业学生的求职信范文
2014/01/27 职场文书
亲子读书活动方案
2014/02/22 职场文书
表彰会主持词
2014/03/26 职场文书
纺织工程专业推荐信
2014/09/08 职场文书
单位法定代表人授权委托书
2014/09/20 职场文书
新闻人物通讯稿
2014/10/09 职场文书
开会迟到检讨书范文
2015/05/06 职场文书
太空授课观后感
2015/06/17 职场文书
Spring boot admin 服务监控利器详解
2022/08/05 Java/Android