博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python read PDF for chinese
阅读量:7294 次
发布时间:2019-06-30

本文共 1890 字,大约阅读时间需要 6 分钟。

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

 

转载于:https://www.cnblogs.com/jiujue/p/10810466.html

你可能感兴趣的文章
深入计算机系统 练习题2.44 补码运算
查看>>
python 在linux下读取 .xlsx
查看>>
Java 学习 面向对象学习
查看>>
创建一个git仓库
查看>>
理解爬虫原理
查看>>
Linux 多线程
查看>>
iOS“.NET研究”平台应用开发的敏捷设计流程
查看>>
sqlite数据库中自增key的设定,autoincrement 和 rowid
查看>>
【推荐】10款优秀的jQuery图片插件
查看>>
黑帽大会:SCADA系统安全就像一颗“定时炸弹”
查看>>
20165303第九周学习总结
查看>>
sql存储过程中的整形变量和字符串变量
查看>>
WebService 调用三种方法
查看>>
自定义web框架
查看>>
java集合架构(二)——Map
查看>>
课堂实验
查看>>
The King’s Ups and Downs
查看>>
JRadioButton 实现图片切换
查看>>
图片和字符串相互转换
查看>>
动态规划,Dijkstra算法,A*算法的比较
查看>>