夜雨聆风学习资料网

ARTICLE · 1202647

PDF 里的表格复制出来全是乱的?用 Python

PDF 里的表格复制出来全是乱的?用 Python

PDF 里的表格复制出来全是乱的?用 Python

很多人第一次用 Python 提取 PDF 表格,都是从一段人畜无害的代码开始的:

然后终端要么输出 [],要么给你一堆错位的字符串。合并单元格变成了“姓名张三”,数字和单位黏在一起,七列的数据硬生生挤成了四列。

问题通常不在代码,而在被跳过的前提:PDF 里的“表格”,从来就不是表格。它只是文字、线条和坐标的集合。你看到的“行列对齐”,在 PDF 内部可能是一堆散落的字符对象,靠位置“看起来像表格”而已。

所以动手前先花 30 秒做个体检:能不能选中文字?有没有边框线?布局规不规整?

有文本层又有明显边框线,直接上 Camelot 的 lattice 模式;无线条纯靠空白对齐,用 pdfplumber 切到 text 策略;要是怎么选都选不中,那就是扫描件,任何文本提取库都救不了,老老实实走 OCR。

提取出来也只是原始字符串,清洗才是拿到数据的最后一步。多级表头要手动拼,合并单元格得前向填充,金额还得把货币符号全替换掉。

真正重要的不是背参数,而是打开 PDF 先分类。分类对了剩下的只是调参,分错了再漂亮的代码也只会返回一个空列表。

原文PDF 里的表格复制出来全是乱的?用 Python 提取,先搞清楚你面对的是哪类 PDF
作者提示: 个人观点,仅供参考
广东,2小时前,

相关学习资料