安装pdfminer模块

pip3 install pdfminer3k

代码如下

  1. #!/usr/bin/env python
  2. # coding:utf8
  3. # author:Z time:2018/7/30
  4.  
  5. import sys
  6. import importlib
  7. importlib.reload(sys)
  8.  
  9. from pdfminer.pdfparser import PDFParser,PDFDocument
  10. from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
  11. from pdfminer.converter import PDFPageAggregator
  12. from pdfminer.layout import LTTextBoxHorizontal,LAParams
  13. from pdfminer.pdfinterp import PDFTextExtractionNotAllowed
  14.  
  15. '''
  16. 解析pdf 文本,保存到txt文件中
  17. '''
  18. path = r'E:/pdfminer-20140328/tools/simple1.pdf'
  19. def parse():
  20. fp = open(path, 'rb') # 以二进制读模式打开
  21. #用文件对象来创建一个pdf文档分析器
  22. praser = PDFParser(fp)
  23. # 创建一个PDF文档
  24. doc = PDFDocument()
  25. # 连接分析器 与文档对象
  26. praser.set_document(doc)
  27. doc.set_parser(praser)
  28.  
  29. # 提供初始化密码
  30. # 如果没有密码 就创建一个空的字符串
  31. doc.initialize()
  32.  
  33. # 检测文档是否提供txt转换,不提供就忽略
  34. if not doc.is_extractable:
  35. raise PDFTextExtractionNotAllowed
  36. else:
  37. # 创建PDf 资源管理器 来管理共享资源
  38. rsrcmgr = PDFResourceManager()
  39. # 创建一个PDF设备对象
  40. laparams = LAParams()
  41. device = PDFPageAggregator(rsrcmgr, laparams=laparams)
  42. # 创建一个PDF解释器对象
  43. interpreter = PDFPageInterpreter(rsrcmgr, device)
  44.  
  45. # 循环遍历列表,每次处理一个page的内容
  46. for page in doc.get_pages(): # doc.get_pages() 获取page列表
  47. interpreter.process_page(page)
  48. # 接受该页面的LTPage对象
  49. layout = device.get_result()
  50. # 这里layout是一个LTPage对象 里面存放着 这个page解析出的各种对象 一般包括LTTextBox, LTFigure, LTImage, LTTextBoxHorizontal 等等 想要获取文本就获得对象的text属性,
  51. for x in layout:
  52. if (isinstance(x, LTTextBoxHorizontal)):
  53. with open(r'E:/pdfminer-20140328/tools/22.txt', 'a') as f:
  54. results = x.get_text()
  55. print(results)
  56. f.write(results + '\n')
  57.  
  58. if __name__ == '__main__':
  59. parse()
  1. """
  2. Hello
  3.  
  4. World
  5.  
  6. Hello
  7.  
  8. World
  9.  
  10. H e l l o
  11.  
  12. W o r l d
  13.  
  14. H e l l o
  15.  
  16. W o r l d
  17.  
  18. """

python3使用pdfminer3k解析pdf文件的更多相关文章

  1. C#仪器数据文件解析-PDF文件

    不少仪器工作站输出的数据报告文件为PDF格式,PDF格式用于排版打印,但不易于数据解析,因此解析PDF数据需要首先读取到PDF文件中的文本内容,然后根据内容规则解析有意义的数据信息. C#解析PDF文 ...

  2. Java仪器数据文件解析-PDF文件

    一.概述 使用pdfbox可生成Pdf文件,同样可以解析PDF文本内容. pdfbox链接:https://pdfbox.apache.org/ 二.PDF文本内容解析 File file = new ...

  3. PHP通过PDFParser解析PDF文件

    之前一直找到的资料都是教你怎么生成pdf文档,比如:TCPDF.FPDF.wkhtmltopdf.而我碰到的项目里需要验证从远程获取的pdf文件是否受损.文件内容是否一致这些问题,这些都不能直接提供给 ...

  4. 使用PDFminer3k解析pdf为文字遇到:WARING:root:GBK-EUC-H

    最近需要把PDF解析为文字,查了查python的模块,发现PDFminer3k能满足需求.我使用的是 windows平台下的python3.6,python2的则下载pdfminer. 首先下载:直接 ...

  5. C# PDFBox 解析PDF文件

    下载 PDFBox-0.7.3.zip PDFBox-0.7.3.dlllucene-demos-2.0.0.dlllucene-core-2.0.0.dllbcmail-jdk14-132.dllb ...

  6. pdfBox 解析 pdf文件

    Spting boot 项目 1.添加依赖 <dependency> <groupId>org.apache.pdfbox</groupId> <artifa ...

  7. 深入学习python解析并读取PDF文件内容的方法

    这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...

  8. WPF解析PDF为图片

    偶遇需要解析PDF文件为单张图,此做, http://git.oschina.net/jiailiuyan/OfficeDecoder using System; using System.Colle ...

  9. 如何使用C#程序给PDF文件添加编辑域

    PDF文档通常是不能编辑的,但有些时候需要在PDF文档中填写日期或签名之类,就需要在PDF有能编辑的文本域,本文介绍怎样用C#来实现这一功能. 环境 工具:VS2015 语言:C# 操作PDF类库:i ...

随机推荐

  1. node/webpack/react

    node是运行引擎,通过他可以直接在后端运行js语法 webpack是打包工具 react是前端框架 通过 npm 使用 React 我们建议在 React 中使用 CommonJS 模块系统,比如 ...

  2. z pre-pass 相关问题的讨论

    z pre-pass 是指在渲染流程中,第一个pass先画一张深度buffer出来,得到需要绘制的最前面这层深度,用这个在接下来的pass中做深度剔出,这样在第二个pass中会省略很多绘制. 这项技术 ...

  3. 获取安装后Apache、MySQL、Nginx、PHP编译时参数

    # cat /usr/local/apache2/build/config.nice      //获取Apache编译时的参数 #!/bin/sh # #Created by configure & ...

  4. Linux:和任务执行相关的 【批命令执行 runparts 】命令

    run-parts:执行目录下的 命令或脚本 工具,其他非可执行文件和子目录下的文件不会被执行.目录下的命令,是以基本的词汇(字符)顺序执行的,除非你指定了--reverse 逆序选项!这是个老牌的G ...

  5. 几种Tab的实现方法

    转载请注明出处,谢谢! 学了这久Android,今天来总结一下几种Tab的实现方法 实现方法一: ViewPage来实现 首先创建一个top.xml布局和一个bottom.xml布局,然后在主界面中通 ...

  6. Map接口及其子类

    Map接口操作的是一对对象,即二元偶对象,Map接口中的每一个元素都使用"key--value"的形式存储在集合中. SortedMap接口是排序接口,仅仅要是实现了此接口的子类, ...

  7. H5 性能调优 工具

    1.阿里测:http://www.alibench.com 2.奇云测:http://ce.cloud.360.cn 3.百度应用性能检测中心:http://apm.baidu.com 推荐理由:这3 ...

  8. 重装系统后恢复wubi安装的Ubuntu(未实测)

     wubi安装成功,但是后来windows系统重装了,如何修复ubuntu系统的引导?[另外完全可以复制别人的wubi安装的ubuntu,但是要放在同一个盘符下]  将X:/ubuntu/winboo ...

  9. swiper-demo1

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. WebRTC for android ios开发官方指南

    The WebRTC native code package can be found at: https://chromium.googlesource.com/external/webrtc ht ...