【问题标题】:Is it possible to get elements of an existing PDF document using iText?是否可以使用 iText 获取现有 PDF 文档的元素?
【发布时间】:2018-02-12 08:53:14
【问题描述】:

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

【问题讨论】:

  • 请提供您在遇到问题时所做的工作。
  • 是的,有可能

标签: java pdf itext


【解决方案1】:

直接轻松,不。

你是否愿意投入工作,这取决于。

如果你愿意付出很多努力,是的。

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

如果您有一个未标记的 PDF,它仅包含呈现文档所需的说明。你可以把它想象成

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-07
    • 1970-01-01
    • 2017-04-26
    • 1970-01-01
    • 2011-08-17
    • 1970-01-01
    • 2011-06-29
    • 1970-01-01
    相关资源
    最近更新 更多