使用iText从pdf文档中检索所有标题

时间:2018-05-16 14:04:54

标签: java itext

我尝试阅读pdf文档并提取pdf文档中的所有标题。 头条新闻的例子:

1标题

1.1标题示例1

1.2标题示例2

1.2.1标题示例3

为此,我使用iText。我想如何找回头条? 谢谢

PdfReader = new PdfReader((new FileInputStream(systemResource.getFile())));
PdfReaderContentParser parser = new PdfReaderContentParser(pdfReader);

for(int i = 1; i <= pdfReader.getNumberOfPages(); i++){
            TextExtractionStrategy simpleTextExtractionStrategy = parser.processContent(i, new SimpleTextExtractionStrategy());
            simpleTextExtractionStrategy.getResultantText();
}

1 个答案:

答案 0 :(得分:1)

PDF标准中基本上有两组可用。

  • 标记:PDF文档包含有助于识别文档结构的元信息(段落,部分,页眉,页脚,表格,列表等)
  • 未标记:PDF文档仅包含查看者能够呈现页面的说明。

    例如:

    • 将光标移动到50,50
    • 将字体设置为Helvetica,大小为12
    • 绘制字符'H'
    • 的字形

    如果您的PDF文档已被标记,则可以轻松检索文档结构(以及您的标题)。

如果PDF文档未标记,则需要编写自己的自定义逻辑来标识文本块(将原始数据提供给IEventListener)。您需要将这些块合并为行(基于某些启发式)。然后你就能识别标题(使用“以数字开头”或“字体通常大于页面上的平均字体大小等”的启发式方法等)