python处理pdf文件,网上一般推荐使用pdfminer3k和pdfplumber这两个库。但如果安装这两个库,则会发生冲突,主要是pdfplumber无法导入。卸载掉pdfminer3k也不起作用,因为系统还会保留lib/python3.8/site-packages/下的pdfminer目录。
网上的解决办法中,无论是按照先pdfminer3k后pdfplumer顺序的,还是回退pdfplumber版本的,都不起作用。
如果二者得兼,可以使用以下办法:
首先安装pdfplumber,然后将pdfminer目录改名为Newpdfminer。
再安装pdfminer3k,安装完毕后将pdfminer目录改名为newpdfminer,然后将原Newpdfminer修改回pdfminer。
Jupyterlab重新启动后,导入包的时候使用newpdfminer代替pdfminer,比如:
from newpdfminer.pdfparser import PDFParser, PDFDocument
from newpdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from newpdfminer.converter import PDFPageAggregator
from newpdfminer.layout import LAParams, LTTextBox
from newpdfminer.pdfinterp import PDFTextExtractionNotAllowed
这样就可以解决二者冲突问题。
不过测试了一下通过程序生成的pdf文件,号称以处理文本见长,但使用繁琐的的pdfminer3k出现了乱码,而简洁明了,以处理表格见长的pdfplumber反而没有出现乱码问题。