是否可以使用iText获取现有PDF文档的元素?

时间:2018-02-12 08:53:15

标签: java pdf itext

我想使用iText API阅读并获取现有PDF文档的元素。 示例:文档包含PDF表格,我想在阅读文档时获取该表格。

1 个答案:

答案 0 :(得分:4)

直接轻松,没有。

如果你愿意投入工作,那取决于。

如果你愿意投入大量的工作,是的。

请允许我详细说明。有两种PDF规范。标记和未标记的PDF。标记PDF时,表示保留所有结构信息。每个字符都属于一行,每一行都属于一个段落,而表,列表(和其他结构元素)知道哪些行和段落都包含在其中。

如果您有未标记的PDF,则它仅包含呈现文档所需的说明。您可以将其想象为

  

转到位置50,50   将字体设置为Arial Unicode
  将字体大小设置为12
  画出字符'H'

这是解决方案取决于工作量的地方。 如果您的PDF被标记,您可以使用iText提取标记信息,这允许您重建PdfTable的结构概念。 (您也可以使用IEventListener查找使用的字体,字体大小等)

如果PDF未标记,您可以尝试在渲染说明中查找结构。

这是一个难题。研究的主题甚至。 目前的研究似乎存在两种主要方法:

  • 基于规则(如果字符的距离小于给定的epsilon,则字符被视为同一行的一部分,并且在给定的边距内,它们的y位置大致相同,等等)
  • 神经网络(“渲染PDF”并将图像视为图像分类网络的输入)