python读取pdf文档,有好几种方式,测试了pdfminer,本方法的问题在于,读取时候貌似按照位置读取,一旦文档里面的内容稍微调整,所读取的内容就会出问题,因为我这次要读取的是pdf里面的表格,用pdfminer的方式,读取的格式很乱,试了两天找不到规律,果断放弃了;另外一种是用tabula读取,这个是按行读取的,读取的时候如果一个表格里面分为好几行,一行表格里面几个单元格的内容如果不对齐,哪怕是有小的上下波动都会被读取到不同的行里面,这个后续还需要做一些调整才能将pdf还原到表格文件中。对于tabula方式,下面描述一下具体安装过程。
1、下载pip,这个是用来安装tabula用的,这个包在官网可以下载。https://pypi.org/project/pip/#files
2、下载后解压,并通过cmd定位到解压的文件夹下面,里面有个setup.py文件,然后输入命令:python setup.py install进行安装,装完以后可以通过命令行输入pip --version或pip list来查看是否安装成功。
3、下载tabula,这个可以到官网下载https://github.com/chezou/tabula-py,下载压zip缩包:
4、解压到文件下,然后cmd到该目录下,运行:pip install tabula-py进行安装,安装动画还是挺好看的。
5、装完之后可以运行一个小程序测试一下。
#-*- conding: utf-8 -*-
import tabula
df = tabula.read_pdf("E:\\test\\extract\\2017gq\\a53277ce525547088780c4b94accb7b5.pdf", encoding='gbk', pages='all')
print(df)
for indexs in df.index:
print(df.loc[indexs].values[1].strip())
运行结果如下