可支持的工具有:pdfplumber、pdfminer3k以及Camelot。
亲身尝试了pdfplumber、Camelot。
Camelot可以将PDF直接解析为文本,前期尝试时乍一看效果很好。遂用之。(然而实际坑很多。)
遇到的问题:
1.安装。pip install camelot后还需要安装其他的依赖包,比如ghostscript。同样pip install ghostscript后报错。
Can not find Ghostscript DLL in registry
我的解决办法是安装Ghostscript软件。
重要:软件32位、64位应与Python版本相同。
Ghostscript下载链接
https://download.csdn.net/download/qq_35248792/12104690
2.使用。
a.默认只对第一页解析。对全文当解析:设置pages=‘all’
b.flavor : (default: ‘lattice’) The parsing method to use (‘lattice’ or ‘stream’)
初期尝试时,设置为’stream’。'stream’将整个页面视为一个表格进行解析,每一页生成一个table,结果不准确。'lattice’划分为多个表格。实际使用中差别很大!使用’lattice’必须安装ghostscript。
c.使用中发现具体的参数对实际解析效果影响很大。比如line_scale,iterations等。随着解析文件进行调整。在解析不同类别PDF时如何动态进行调整?
d.经过一下午调试,发现table_areas参数不起作用。但是就在刚刚,就在打下这行文字的刚刚,去看源码的时候发现是因为我把参数名称打错了!table_areas!哭。
不过似乎不符合左上、右下的两点坐标。后续尝试。
我先去缓缓。
补充:stream参数时坐标系与一般的图像坐标系不同,以左下角为原点。
camelot.read_pdf(pages='all',line_scale=20,iterations=2,shift_text=['b'])
新遇到的问题:camelot中PDF的坐标系到底是如何建立的?