You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Camelot提取PDF表格遇换行符问题:有效行被误过滤

问题:Camelot提取PDF表格时换行符导致有效行误删

用Camelot提取PDF中由空格分隔的表格,通过过滤首列非数字行清理数据。但部分同服务器生成的PDF会在前两行的第一、二列间插入换行符\n,使首列内容变为68\n10.30.42这类格式,无法被识别为数字,导致对应行被误删。尝试过设置strip_text=' \n'和预处理PDF替换换行符,均未解决问题。

正常输出(前两行)

0         1                 2         3     4       5       6           7 

0   Pos.   Art-Nr.       Bezeichnung     Menge         Preis  Rabatt       Summe
1    68   10.30.42            Dimmer         1   Stk     100   10.0%        90.0

异常输出(前两行)

0                  1         2     3       4       5           6  

0   Pos.\nArt-Nr.       Bezeichnung     Menge         Preis  Rabatt       Summe
1   68\n10.30.42             Dimmer         1   Stk     100   10.0%        90.0

当前代码

camelot_df = (camelot.read_pdf(input_pdf,
    flavor="stream",
    suppress_stdout=True,
    pages="all"))

pdf_df = pd.DataFrame()

for pages in camelot_df:
    pages.df = pages.df[pages.df[0].str.isdigit()]
    if (~pages.df.empty):
        pdf_df=pdf_df._append(pages.df)

尝试过的预处理代码

raw = parser.from_file(input_pdf_file_inverter)
content = raw['content']
content = content.replace("\n", " ")

解决方法

1. 数据层面修复:提取首列数字部分

直接在提取后的DataFrame中处理首列的换行符,提取有效数字部分再过滤:

camelot_df = camelot.read_pdf(input_pdf,
    flavor="stream",
    suppress_stdout=True,
    pages="all",
    strip_text=' \n'
)

pdf_df = pd.DataFrame()

for page in camelot_df:
    # 拆分首列的换行内容,取第一个元素作为判断依据,兼容更多数字格式
    page.df = page.df[pd.to_numeric(page.df[0].str.split('\n').str[0], errors='coerce').notna()]
    if not page.df.empty:
        pdf_df = pd.concat([pdf_df, page.df], ignore_index=True)

2. Camelot参数优化:调整列识别阈值

Stream模式依靠文本间距识别列,可尝试增大column_tol参数,让Camelot更准确区分第一、二列,避免换行被合并到同一列:

camelot_df = camelot.read_pdf(input_pdf,
    flavor="stream",
    suppress_stdout=True,
    pages="all",
    strip_text=' \n',
    column_tol=10  # 根据实际PDF的列间距调整数值
)

说明

之前的预处理方法无效,是因为parser.from_file提取的是纯文本内容,而Camelot是直接解析PDF的布局结构,两者处理逻辑独立,修改纯文本内容不会影响Camelot的表格识别结果。


内容的提问来源于stack exchange,提问作者giancarlo64

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 01:52:43