如何使用java中的itext从pdf中检索页眉和页脚?

时间:2014-03-06 15:49:33

标签: java itext

我知道标题&页脚存储在“短语”对象中。
https://itextpdf.com/examples提供了许多添加标题和示例的示例。页脚但不能检索它们。
有没有getHeader()或getPhrase()?

1 个答案:

答案 0 :(得分:0)

您说页眉和页脚存储在Phrase对象中。那个指控是不正确的。使用iText时,可以使用Phrase对象创建页眉和页脚,但其他软件将使用其他方法。

PDF由一系列相互关联的对象组成。如果你从根对象开始,然后查看页面树,表单条目(如果有的话),等等,它们实际上是树。

每个页面字典指的是(至少一个)流对象。在该流对象中,您将找到用于描边线,填充形状和显示文本的PDF语法。每个文本片段都会添加到绝对位置,而这样的片段不会识别短语。

例如:表格单元格的内容不知道它们属于表格单元格。一行文字不知道它是否是段落的一部分,如果它是标题,或者......可能是页眉或页脚,除非您有标记的PDF。

如果是标记的PDF,您在根词典中有一个StructTreeRoot条目,当您查看此结构树时,您可以看到每个数据的语义。内容流中将引用标记内容运算符,这些运算符允许您找出内容的哪些部分属于哪个结构元素,例如段落,表格单元格...... 页眉和页脚通常不是内容的一部分。它们被标记为工件

长话短说:要么标记您的PDF,在这种情况下您必须查找页眉和页脚工件。或者您的PDF没有标记,在这种情况下,您需要编写一些代码猜测基于启发式方法,内容流的哪些部分是页眉和页脚。