参考文章:camelot官方文档
camelot
自行准备的含有三线表的PDF文件
tables = camelot.read_pdf(path, pages=str(pageID), flavor="stream", table_areas=[area])
1: 内存中提取时出现的字段错位
2: 输出文件中出现的过多空白单元
针对表字段错位:
可能是由于Camelot库在进行扫描过程中,对 单行高度的检测阈值 设置过低。查阅源码后其阈值默认为2,可以进行修改为10。
针对空白单元:
可能是由于Camelot库在扫描的过程中, 对 单行高度的检测阈值 设置过高,导致获得了多余的 \n 换行符,使得换行符之后的文本内容没有写入输出文件。
内存中由于单行高度的检测阈值设置过高,所出现的情况:
将 单行高度的检测阈值 设置 合适的值,官方推荐为 10 ,(默认为2),当阈值设置超过10后,会导致多行并为一行的情况发生。
即,设置 row_tol属性, 例:row_tol=10
对提取出的文本信息,将其中的“\n”字符过滤掉。
即,设置strip_text属性, 例: strip_text="\n"
tables = camelot.read_pdf(path, pages=str(pageID), flavor="stream", table_areas=[area], row_tol=10,
strip_text="\n")
优化后识别的Table1 (内存中表示)
优化后识别的Table1 (输出文件中表示)