PDF是一个比较坑的东西,有很多处理PDF的库,但是没有完美的。
PDF文本的识别读取
读取PDF文本的库有pdfminer3k,pdfplumber,pypdf2,pypdf4等,我们学习pdfminer3k这个库。PDFminer3k是pdfminer对应python3的版本,主要用于读取PDF的文本,它对表格的读取支持的不太友好,表格格式都会消失。
使用命令安装pdfminer3k库,如下图所示:
导入PDFminerk相关类,代码示例如下图所示:
运行代码结果如下图所示:
我们可以看到表格内容打印出来了格式都没有了。
读取PDF表格
能够识别PDF表格的库也有很多,如camelot、tabula、pdfplumber等,综合来看pdfplumber库的性能较佳,可以提取出完整且相对规范的表格。因此我们学习pdfplumber库。pdfplumber库是按页处理PDF的,可以获取页面所有文字,还提供了两个单独的方法用于提取表格,分别是extract_tables()和extract_table()。
使用命令安装pdfplumber库,如下图所示;
extract_tables()
返回页面中所有的表格,以嵌套列表形式存在,所有表格被放在一个大列表中,代码如下图所示:
运行结果如下图所示
extract_table()
返回一个表格列表,如果页面只有一个表格就返回这一个表格,如果有多个表格返回列数多的表格,列数相同返回第一个表格,如下图所示:
运行结果如下图所示: