我正在使用 VFR 阅读器来显示我的 pdf。我需要在单击按钮时提取目录并将其显示在表格视图中,然后在点击每个页面时它应该指向相应的页面。
1 回答
6
解析 PDF 目录实际上并不难。您可以使用 Apple 的 PDF“Voyeur”之类的工具来查看结构或 Adobe Acrobat 的 Preflight Browser 之类的工具:
您会看到“大纲”是一个相当简单的树,可以使用各种CGPDF*函数进行解析。这里的挑战是还要解析目的地/动作类型。PDF 不会让事情变得太简单,也不会给你一个页码,相反,通常你会找到一个链接的命名目的地。这可以通过交叉引用另一个表来解决,最好在 PDF 规范中查找。这当然只是选项之一,也可以是目的地是从 GoTo 到命名操作(例如下一页)到 JavaScript(例如 this.pageNum = x)的 10 种以上的操作类型之一。在上图中,您会看到一个经典的 GoTo 操作,其中较长的字符串是命名引用。
还有一些其他特殊情况,特别是对于较旧的乳胶文档和 PDF 1.1 规范中的一些页面,它们的处理方式略有不同,因此请小心实现 PDF 规范的所有极端情况,以免以后出现意外。
大纲有时还包括 URI 操作,因此至少也要实现该类型。他们还可以有字体样式和颜色,所以你永远不会觉得无聊。去过那里,在我们用于 iOS 和 Android 的商业 PSPDFKit PDF SDK 中完成。
于 2015-09-20T11:52:44.663 回答
