python3使用pdfminer3k解析pdf文件
安装pdfminer模块
pip3 install pdfminer3k
代码如下
- #!/usr/bin/env python
- # coding:utf8
- # author:Z time:2018/7/30
- 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 LTTextBoxHorizontal,LAParams
- from pdfminer.pdfinterp import PDFTextExtractionNotAllowed
- '''
- 解析pdf 文本,保存到txt文件中
- '''
- path = r'E:/pdfminer-20140328/tools/simple1.pdf'
- def parse():
- fp = open(path, 'rb') # 以二进制读模式打开
- #用文件对象来创建一个pdf文档分析器
- praser = PDFParser(fp)
- # 创建一个PDF文档
- doc = PDFDocument()
- # 连接分析器 与文档对象
- praser.set_document(doc)
- doc.set_parser(praser)
- # 提供初始化密码
- # 如果没有密码 就创建一个空的字符串
- 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)
- # 循环遍历列表,每次处理一个page的内容
- for page in doc.get_pages(): # doc.get_pages() 获取page列表
- interpreter.process_page(page)
- # 接受该页面的LTPage对象
- layout = device.get_result()
- # 这里layout是一个LTPage对象 里面存放着 这个page解析出的各种对象 一般包括LTTextBox, LTFigure, LTImage, LTTextBoxHorizontal 等等 想要获取文本就获得对象的text属性,
- for x in layout:
- if (isinstance(x, LTTextBoxHorizontal)):
- with open(r'E:/pdfminer-20140328/tools/22.txt', 'a') as f:
- results = x.get_text()
- print(results)
- f.write(results + '\n')
- if __name__ == '__main__':
- parse()
- """
- Hello
- World
- Hello
- World
- H e l l o
- W o r l d
- H e l l o
- W o r l d
- """
python3使用pdfminer3k解析pdf文件的更多相关文章
- C#仪器数据文件解析-PDF文件
不少仪器工作站输出的数据报告文件为PDF格式,PDF格式用于排版打印,但不易于数据解析,因此解析PDF数据需要首先读取到PDF文件中的文本内容,然后根据内容规则解析有意义的数据信息. C#解析PDF文 ...
- Java仪器数据文件解析-PDF文件
一.概述 使用pdfbox可生成Pdf文件,同样可以解析PDF文本内容. pdfbox链接:https://pdfbox.apache.org/ 二.PDF文本内容解析 File file = new ...
- PHP通过PDFParser解析PDF文件
之前一直找到的资料都是教你怎么生成pdf文档,比如:TCPDF.FPDF.wkhtmltopdf.而我碰到的项目里需要验证从远程获取的pdf文件是否受损.文件内容是否一致这些问题,这些都不能直接提供给 ...
- 使用PDFminer3k解析pdf为文字遇到:WARING:root:GBK-EUC-H
最近需要把PDF解析为文字,查了查python的模块,发现PDFminer3k能满足需求.我使用的是 windows平台下的python3.6,python2的则下载pdfminer. 首先下载:直接 ...
- 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 ...
- pdfBox 解析 pdf文件
Spting boot 项目 1.添加依赖 <dependency> <groupId>org.apache.pdfbox</groupId> <artifa ...
- 深入学习python解析并读取PDF文件内容的方法
这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...
- WPF解析PDF为图片
偶遇需要解析PDF文件为单张图,此做, http://git.oschina.net/jiailiuyan/OfficeDecoder using System; using System.Colle ...
- 如何使用C#程序给PDF文件添加编辑域
PDF文档通常是不能编辑的,但有些时候需要在PDF文档中填写日期或签名之类,就需要在PDF有能编辑的文本域,本文介绍怎样用C#来实现这一功能. 环境 工具:VS2015 语言:C# 操作PDF类库:i ...
随机推荐
- node/webpack/react
node是运行引擎,通过他可以直接在后端运行js语法 webpack是打包工具 react是前端框架 通过 npm 使用 React 我们建议在 React 中使用 CommonJS 模块系统,比如 ...
- z pre-pass 相关问题的讨论
z pre-pass 是指在渲染流程中,第一个pass先画一张深度buffer出来,得到需要绘制的最前面这层深度,用这个在接下来的pass中做深度剔出,这样在第二个pass中会省略很多绘制. 这项技术 ...
- 获取安装后Apache、MySQL、Nginx、PHP编译时参数
# cat /usr/local/apache2/build/config.nice //获取Apache编译时的参数 #!/bin/sh # #Created by configure & ...
- Linux:和任务执行相关的 【批命令执行 runparts 】命令
run-parts:执行目录下的 命令或脚本 工具,其他非可执行文件和子目录下的文件不会被执行.目录下的命令,是以基本的词汇(字符)顺序执行的,除非你指定了--reverse 逆序选项!这是个老牌的G ...
- 几种Tab的实现方法
转载请注明出处,谢谢! 学了这久Android,今天来总结一下几种Tab的实现方法 实现方法一: ViewPage来实现 首先创建一个top.xml布局和一个bottom.xml布局,然后在主界面中通 ...
- Map接口及其子类
Map接口操作的是一对对象,即二元偶对象,Map接口中的每一个元素都使用"key--value"的形式存储在集合中. SortedMap接口是排序接口,仅仅要是实现了此接口的子类, ...
- H5 性能调优 工具
1.阿里测:http://www.alibench.com 2.奇云测:http://ce.cloud.360.cn 3.百度应用性能检测中心:http://apm.baidu.com 推荐理由:这3 ...
- 重装系统后恢复wubi安装的Ubuntu(未实测)
wubi安装成功,但是后来windows系统重装了,如何修复ubuntu系统的引导?[另外完全可以复制别人的wubi安装的ubuntu,但是要放在同一个盘符下] 将X:/ubuntu/winboo ...
- swiper-demo1
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- WebRTC for android ios开发官方指南
The WebRTC native code package can be found at: https://chromium.googlesource.com/external/webrtc ht ...