如何找出只有SE字典的PDF大纲的目标

如何找出只有SE字典的PDF大纲的目标,pdf,Pdf,PDF参考文件(12.3.3,表153)指出,大纲将包含一个Dest字典、一个a字典或一个SE字典(带有可选Dest字典)。我有一个只有SE字典的大纲文档。参考文件将我引向结构层次(14.7.2),这就是我迷失的地方。结构项可能有Pg字典,但我的没有(在递归遍历中,父项也没有)。因此,我需要从SE字典中计算页码、页面偏移量和缩放(如果适用)。有什么想法吗 谢谢 结构树有一个有点特殊的根节点。它包含一些其他节点没有的条目。有一个名为ParentTree的条目,用于定位与页面、注释和XForms相对

PDF参考文件(12.3.3,表153)指出,大纲将包含一个Dest字典、一个a字典或一个SE字典(带有可选Dest字典)。我有一个只有SE字典的大纲文档。参考文件将我引向结构层次(14.7.2),这就是我迷失的地方。结构项可能有Pg字典,但我的没有(在递归遍历中,父项也没有)。因此,我需要从SE字典中计算页码、页面偏移量和缩放(如果适用)。有什么想法吗


谢谢

结构树有一个有点特殊的根节点。它包含一些其他节点没有的条目。有一个名为ParentTree的条目,用于定位与页面、注释和XForms相对应的结构元素。请参见14.7.2结构层次和14.7.4.4从内容项查找结构元素

页面和结构元素之间的引用是双向的,您应该在一个结构元素或其递归父元素中有Pg条目(据我所知,如果不是这种情况,文件可能被视为已损坏),在页面字典中有一个名为StructParents的条目,它包含与ParentTree结构中该页面对应的索引

如果页面字典中缺少StructParents条目,并且存在结构树,则文件很可能已损坏。“腐败”是指它包含的信息不一致、不连贯等


有两种方法可以使用这些信息。如果您有一个对结构元素的引用,您应该能够通过使用Pg条目找到它所引用的页面。如果您有一个对页面的引用,您应该能够通过使用ParentTree结构来使用其相应的structure元素。两个方向都应该出现在文件中,以便信息保持一致。

根据14.7.6中的示例,并非所有结构元素都必须出现在父树中(301不是)。301没有Pg条目。然而,这样的元素至少有一个子元素有一个Pg条目(我的测试文档也是如此)。我可以依赖这一点吗?并将大纲的目标设置为SE条目中具有Pg条目的第一个子项的页面?我放弃了在引用的页面上有一些标记内容的假设,在这种情况下,页面必须位于父树中。无论如何,我认为获取包含Pg条目的第一个子节点是不安全的,因为该条目中可能有其他具有其他值的子节点。好的,但在示例中,301不在父树中,并且它和它的父节点都没有Pg条目。如果大纲通过SE条目指向它,会发生什么?有趣的。。。看来还是按照你说的去做是安全的(使用第一个孩子的Pg条目)。虽然规范中不清楚,但我知道K数组中项目的顺序很重要,并且示例中的对象301是一个“章节”(可能有多个页面),所以按照您所说的做是有意义的。太棒了,谢谢!如果我可以从O(1)中的页面对象中获取页码,那就太好了,但至少它现在可以工作了:-)