繁体   English   中英

iPhone SDK如何从PDF文件中检索目录?

[英]iPhone sdk how to retrieve the Table of Contents from PDF file?

我正在使用VFR阅读器来显示我的pdf。 我需要在单击按钮时提取目录并将其显示在表格视图中,然后在点击各页面时应指向相应页面。我用google搜索并获得了这些链接

  1. 从pdf文件创建目录
  2. http://mobile.tutsplus.com/tutorials/iphone/ios-sdk-adding-a-table-of-contents-to-an-ipad-reader/

我知道,要获得目录,我们必须使用“ CGPDFDocumentGetCatalog(pdf doc)”。 但是在我的读者看来,“ CGPDFDocumentGetCatalog(pdf doc)”根本没有被调用。 现在如何从我的pdf文件中提取目录? 请帮助我。 我为此奋斗了一个星期。 提前致谢。

不幸的是,我认为您提到的两个答案指向不同的实施策略,这些策略可能都是有效的,但有所不同。

第一个问题是您想要在应用程序中显示的PDF文件的外观。 PDF文件中没有预定义的TOC对象,只有几种不同的模拟方法。 两种最常见的方式是:

A)书签,这是一种将少量文本添加到结构树的方法,其中每个文本都指向PDF文件中的特定位置。 这些书签可以添加到设计应用程序中或更高版本(有特定的工具可以添加),并且可以实现任何结构。

B)您的PDF文件可能包含类似于书中经典TOC的内容,该内容基本上只是打开页面上的文字,还可以选择指向书中特定位置的超链接。

您引用的第二个链接显示了如何创建用户界面,您可以在其中显示目录。然后剩下的问题是弄清楚您想在目录窗口中显示哪些项目。 在您指向的第二个链接中,提供的解决方案是提供特定于一本书的硬编码项目。 当然,当您只想显示任何书籍时,这种方法不是很有用。

因此,剩下的问题是如何确定要显示的项目以及它们链接到的位置。

如果您考虑以上我的可能性A):带有书签的PDF文件,则答案可能相对简单。 您指向的答案1解释了如何查看PDF文件中的不同结构-书签就是这样一种结构(在PDF规范的12.3节中定义: http : //www.adobe.com/content/dam/Adobe/ zh / devnet / acrobat / pdfs / PDF32000_2008.pdf

这意味着您可以使用此处显示的技术来遍历PDF文件中的不同对象,并找到每个书签。 书签将为您提供要显示的文本以及单击时文本应跳转到的PDF文件中的实际位置。

如果您考虑以上我的可能性B):一个没有书签而是经典TOC的PDF文件,这将很难解决。 这样的目录只是一个或多个页面上的文本,可以选择带有超链接。 当然,您可以尝试在这些页面上找到所有文本(如果您可以确定目录的起始和结束位置),但是您还必须弄清楚该项目链接到的位置。 如果不涉及超链接,那将是一项艰巨的任务。

因此,您的第一个问题应该是要解决该问题的通用性。 您知道要显示哪些PDF文件吗? 您可以自己设计这些文件的目录(如您的解决方案2所示)吗? 如果不是,您可以确定所有PDF文件都包含书签吗? 这些问题的答案将在很大程度上决定您策略的其余部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM