我有两个带有超链接的pdf文档(doc1和doc2),例如www.somlink.com,www.somlink2.com。 根据PDF规范,我可以通过链接注释获得这些超链接。链接注释可以在“Annots”键下的pdf页面词典中找到。
CGPDFDictionaryRef pageDictionary = CGPDFPageGetDictionary(someCGPDFPage);
CGPDFArrayRef annots;
CGPDFDictionaryGetArray(pageDictionary, "Annots", &annots);
所以问题是在一个pdf文档(doc1)中我得到了“Annots”数组,但在另一个文档(doc2)中,页面字典中没有这样的条目。 事实是,使用PDFKit.framework,即使页面字典中没有“Annots”条目,您也可以使用 - (NSArray *)注释方法在PDFPage类中获取这些注释。
我无法在iPad / iPhone上使用PDFKit.framework,因此我正在使用Quartz框架:)
所以似乎还有另一个地方可以指定超链接(或PDF参考中的链接注释),不仅在“Annots”数组和PDFKit.framework中,我们知道如何做到这一点。
我可以在哪些想法获得这些超链接?
答案 0 :(得分:1)
您可以点击的页面上的链接必须是注释。期。没有注释,没有链接。
一串文字“http://blah.com”不一定是链接,它只是描述URL的一段文字。这可能是导致你混淆的原因。
也可以在书签中嵌入链接操作。我对PDFKit或Quartz一点都不熟悉,所以就API调用而言,你是独立的。
最后,(重读了你的问题),我相信注释可以从他们的父页面对象继承。不得不看那个......不。注释数组必须位于叶页面对象中,否则它无效。
您可以发布PDF链接吗?这里的事情不对。
答案 1 :(得分:1)
像Adobe Reader这样的PDF查看器只允许在纯文本上单击和导航,如果它看起来像超链接 - 即以http://,https://,ftp://开头,最后是一些URL分隔符比如太空。就这么简单;)