有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我尝试阅读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) 个答案

  1. # 1 楼答案

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

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

      例如:

      • 将光标移动到50,50
      • 将字体设置为Helvetica,大小为12
      • 绘制字符“H”的图示符
      • 等等

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

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