一个礼拜前一个同学问我这个事情,由于之前在参加华为的比赛,所以赛后看了一下,据说需要用到pdfminer这个包。于是安装了一下,安装过程很简单:
sudo pip install pdfminer;
中间也没有任何的报错。至于如何调用,本人也没有很好的研究过pdfminer这个库,于是开始了百度……
官方文档:http://www.unixuser.org/~euske/python/pdfminer/index.html
完全使用python编写。 (适用于2.4或更新版本)
解析,分析,并转换成PDF文档。
PDF-1.7规范的支持。 (几乎)
中日韩语言和垂直书写脚本支持。
各种字体类型(Type1、TrueType、Type3,和CID)的支持。
基本加密(RC4)的支持。
PDF与HTML转换。
纲要(TOC)的提取。
标签内容提取。
通过分组文本块重建原始的布局。
一些基本的类
PDFParser:从一个文件中获取数据
PDFDocument:保存获取的数据,和PDFParser是相互关联的
PDFPageInterpreter处理页面内容
PDFDevice将其翻译成你需要的格式
PDFResourceManager用于存储共享资源,如字体或图像。
简单的实现
读取test.pdf输出为output.txt:
# -*- coding: utf-8 -*- from pdfminer.pdfparser import PDFParser from pdfminer.pdfdocument import PDFDocument from pdfminer.pdfpage import PDFPage from pdfminer.pdfpage import PDFTextExtractionNotAllowed from pdfminer.pdfinterp import PDFResourceManager from pdfminer.pdfinterp import PDFPageInterpreter from pdfminer.pdfdevice import PDFDevice from pdfminer.layout import * from pdfminer.converter import PDFPageAggregator import os fp = open('test.pdf', 'rb') #来创建一个pdf文档分析器 parser = PDFParser(fp) #创建一个PDF文档对象存储文档结构 document = PDFDocument(parser) # 检查文件是否允许文本提取 if not document.is_extractable: raise PDFTextExtractionNotAllowed else: # 创建一个PDF资源管理器对象来存储共赏资源 rsrcmgr=PDFResourceManager() # 设定参数进行分析 laparams=LAParams() # 创建一个PDF设备对象 # device=PDFDevice(rsrcmgr) device=PDFPageAggregator(rsrcmgr,laparams=laparams) # 创建一个PDF解释器对象 interpreter=PDFPageInterpreter(rsrcmgr,device) # 处理每一页 for page in PDFPage.create_pages(document): interpreter.process_page(page) # 接受该页面的LTPage对象 layout=device.get_result() for x in layout: if(isinstance(x,LTTextBoxHorizontal)): with open('output.txt','a') as f: f.write(x.get_text().encode('utf-8')+'\n')
以上这篇利用python将pdf输出为txt的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
本文向大家介绍利用ASP输出excel文件实例讲解,包括了利用ASP输出excel文件实例讲解的使用技巧和注意事项,需要的朋友参考一下 在asp中利用excel的一个方法是将excel文件作为一个数据库进行链接,然后的操作和对access数据库操作类似.但是这个方法不是总能有用的,应为excel不是关系型的数据库。对于一个固定格式,这个格式里有复杂的单元格合并,边框线条样式,还有图案,单元格之间还
本文向大家介绍实例讲解Python中整数的最大值输出,包括了实例讲解Python中整数的最大值输出的使用技巧和注意事项,需要的朋友参考一下 在Python中可以存储很大的值,如下面的Python示例程序: 输出: 10000000000000000000000000000000000000000001 在Python中,整数的值不受位数的限制,可以扩展到可用内存的限制。因此,我们永远不需要任何特殊
本文向大家介绍python实现逆序输出一个数字的示例讲解,包括了python实现逆序输出一个数字的示例讲解的使用技巧和注意事项,需要的朋友参考一下 问题是:输入一个数字,按照指定要求逆序输出该数字,很简单,下面是实现: 结果如下: 以上这篇python实现逆序输出一个数字的示例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。
本文向大家介绍利用python画出AUC曲线的实例,包括了利用python画出AUC曲线的实例的使用技巧和注意事项,需要的朋友参考一下 以load_breast_cancer数据集为例,模型细节不重要,重点是画AUC的代码。 直接上代码: 补充拓展:Python机器学习中的roc_auc曲线绘制 废话不多说,直接上代码 以上这篇利用python画出AUC曲线的实例就是小编分享给大家的全部内容了,希
本文向大家介绍利用Java理解sql的语法(实例讲解),包括了利用Java理解sql的语法(实例讲解)的使用技巧和注意事项,需要的朋友参考一下 select 相当于 for 循环 当执行子查询时,可以理解为 很明显这里一对多了。所以执行不对。报SQL错误 所以在 select中,应该要具体确定某一个值 当且仅当if 条件的值搜索是单个值的时候,是对应上的 那么groupBy呢? 以上这篇利用Jav
我们有一个Silverstripe项目,它使用silverstripe-wkhtmltopdf模块将超文本标记语言/CSS/Javascript输出为PDF。 简单的Javascript类文档。编写工作正常,但我想使用谷歌图表的可视化API输出谷歌图表: PDF没有显示任何可视化输出,所以我使用QTBrowser调试Javascript——正如这里所建议的:在wkhtmltopdf中调试Javas