【发布时间】:2019-09-11 09:38:37
【问题描述】:
我已经研究过从 PDF 中进行文本提取/数据提取并使用其他一些堆栈溢出答案来寻求帮助,我设置的是 Tika 通过自定义 ContentHandlerDecorator 解析 pdf,该自定义 ContentHandlerDecorator 使用 sax 事件来解析内容。我遇到了一个问题,虽然在 PDF 查看器中查看 pdf 时包含按行和列排列的数据表,但该信息似乎只是没有从 pdf 中提取,或者我看不到如何使用蒂卡/萨克斯。
这是我看到的一个例子:
像上面这样的表给了我这个(当我只是串起萨克斯事件时)
START http://www.w3.org/1999/xhtml, div, , div, class = page;
START http://www.w3.org/1999/xhtml, p, , p,
END http://www.w3.org/1999/xhtml, p, , p
WHITESPACE[
], 0, 1
START http://www.w3.org/1999/xhtml, p, , p,
CHARS [I, n, f], 0, 3
WHITESPACE[
], 0, 1
CHARS [o], 0, 1
WHITESPACE[
], 0, 1
END http://www.w3.org/1999/xhtml, p, , p
START http://www.w3.org/1999/xhtml, p, , p,
CHARS [I, n, f, o], 0, 4
CHARS [ ], 0, 1
CHARS [H, 1], 0, 2
CHARS [ ], 0, 1
CHARS [H, 2], 0, 2
CHARS [ ], 0, 1
CHARS [H, 3], 0, 2
CHARS [ ], 0, 1
CHARS [H, 4], 0, 2
WHITESPACE[
], 0, 1
END http://www.w3.org/1999/xhtml, p, , p
// Start of Second Row
START http://www.w3.org/1999/xhtml, p, , p,
CHARS [1], 0, 1
CHARS [I, n, f, 1], 0, 4
WHITESPACE[
], 0, 1
CHARS [I, n, f, 2], 0, 4
WHITESPACE[
], 0, 1
END http://www.w3.org/1999/xhtml, p, , p
START http://www.w3.org/1999/xhtml, p, , p,
CHARS [I, n, f, 3], 0, 4
WHITESPACE[
], 0, 1
END http://www.w3.org/1999/xhtml, p, , p
START http://www.w3.org/1999/xhtml, p, , p,
CHARS [D, 1], 0, 2
CHARS [ ], 0, 1
CHARS [D, 4], 0, 2
END http://www.w3.org/1999/xhtml, p, , p
由于段落看似随机的结尾,没有指示何时开始新行,并且在第二行的情况下,尽管空列的数据显示为查看器。
很抱歉,我无法提供 pdf,但我正在寻找有关这些额外格式/布局数据存储或可以提取的位置的任何信息,因为我从 Tika 获得的信息明显缺失。任何段落中都没有任何属性。
如果有帮助,我知道 PDF 是使用 iText 生成的,正如我在元数据中看到的那样,但是在试用 iText 时,它似乎没有提供一种以编程方式打开和解析 pdf 而不提供某种形式的方法预制的提取模板,我不想这样做。
【问题讨论】:
标签: java itext pdfbox sax apache-tika