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

Java环境下PDF表格提取时保留空列结构的可靠方案咨询

Java环境下PDF表格提取时保留空列结构的可靠方案咨询

我目前有25–30种不同结构的PDF文档,每种都包含结构各异的表格。我的最终目标是提取特定标题之间的表格数据,并通过Java将其转换为JSON格式(将每一列映射到特定字段)。

但我在使用Apache PDFBox时遇到了一个核心问题:如果表格的单元格/列是空的,PDF文本中没有任何空格或占位符,导致提取的文本会合并相邻列,彻底破坏表格结构。换句话说,PDFBox不会为空列插入任何间距,所以输出文本里的列布局完全丢失了。

我尝试过把原始PDF喂给ChatGPT,用零温度提示词,希望它能稳定地把表格解析成JSON,但每次结果都不一致。因为这种不确定性,我更倾向于基于文本的方案:先提取出结构一致的文本,再把文本喂给AI(或其他基于规则的逻辑)转换成JSON。但如果文本提取工具无法保留空列的结构,就几乎不可能可靠地映射列了。

含空列的表格行示例

上面是一个包含缺失列的行示例,它应该被处理成:

"TOPLAM missing_column missing_column missing_column 70,000,000.00 70,427,300.00 4.88"

理想的提取结果应该是以下两种格式之一:

"TOPLAM       70,000,000.00 70,427,300.00 4.88"

或者

TOPLAM | [empty] | [empty] | [empty] | 70,000,000.00 | 70,427,300.00 | 4.88

我的疑问如下:

  • 是否可以配置Apache PDFBox,使其保留空列/单元格的间距或占位符,以维持表格结构?
  • 有没有其他Java库或技术(比如Tabula、iText、OCR工具等)能更好地保留表格列结构,即使存在空列?是否需要依赖边界框坐标或者PDF转HTML的方法来保持布局一致性?
  • 有没有人遇到过类似的“隐形”空列问题,你们是怎么解决的?我希望尽量避免手动编写针对单个PDF的自定义代码,因为我有很多种PDF变体。

如果上述方案都不可行,我是不是应该直接提取PDF的相关部分,然后喂给微调后的AI模型?

任何关于如何确保可靠提取表格、避免空列破坏布局的建议,我都非常感激。

备注:内容来源于stack exchange,提问作者Requiet

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 19:29:37