我正在使用Apache PdfBox 2.0来解析pdf文件。有了一些固定的字符串,我能够基于以下条件创建系统:
使用起点,我正在计算x和y(请参见下图,获取PDF Box中的pdf结构:
使用“下一个”文本块(这是另一个固定值,例如字段或表头),我使用以下公式确定所需区域的宽度:
width = second.x - first.x
或类似的东西。因此,例如,在一个表中,预先知道标题名称,就很容易检测到列。我正在尝试做的事情(到目前为止还没有以正确的方式做)是确定pdf表中的行。该表有时在某些列中包含缺失值,在某些行/列中还包含多行值。我已将“系统”(第一,下一个,下一个)扩展为可处理表行,这在我对表进行“规范化”(例如,没有空格和/或至少没有多行值)时非常有用。但这不适用于现实世界的数据,因为到目前为止,我还找不到确定多行值的位置(x,y,宽度,高度)的方法。 PDF Box甚至可以做到吗?有人建议先将pdf转换为html,然后再解析html。这是可行的选择吗?有没有人使用this库?接下来,我将尝试使用它。
答案 0 :(得分:0)
就像我在之前的评论中所说,我已经找到了部分解决方案。这是基于两件事:
这不是完美的,并且如果固定文本在文档中可能出现多次,则可能会出现问题。当然,可以通过使用垂直坐标等对正确的出现进行过滤来进行改进,但是目前,我将关闭该问题,因为似乎该问题没有标准答案,并且目前还没有开源库能够从pdf提取表格数据。