如何访问PDF文档(iPhone)中的超链接?

时间:2009-08-08 02:33:14

标签: iphone pdf hyperlink cgpdfdocument

是否可以使用CGPDFDocument或其他方式访问PDF文档中的“内部”链接?我正在构建一个简单的阅读器应用程序,并希望以PDF格式提供我的内容,但如果我不能支持文档中页面之间的链接,这可能不起作用。

This question类似,但没有解决如何支持超链接的问题。

4 个答案:

答案 0 :(得分:2)

请参阅我的回答here。基本上,您需要熟悉PDF链接注释。

答案 1 :(得分:1)

请参阅此示例代码... pdf超链接适用于此

https://github.com/vfr/Reader

答案 2 :(得分:0)

如果您正在使用Quartz to open and view a PDF,那么是的,您似乎可以访问内部链接。 Quartz还允许您add new links到PDF。我没有iPhone / Mac开发的第一手经验,但是让他们添加超链接但不使用超链接会很奇怪。

答案 3 :(得分:0)

您需要分两步完成。

首先:解析你的pdf以找到标记的内容运算符

这是解析代码的一个例子:

-(void)parseContent() {
    CGPDFOperatorTableRef myTable;
    myTable = CGPDFOperatorTableCreate();
    CGPDFOperatorTableSetCallback(myTable, "BMC", &myOperator_BMC);
    CGPDFContentStreamRef myContentStream = CGPDFContentStreamCreateWithPage(page);
    CGPDFScannerRef myScanner = CGPDFScannerCreate(myContentStream, myTable, autoZoomAreas);
    CGPDFScannerScan(myScanner);
    CGPDFScannerRelease(myScanner);
    CGPDFContentStreamRelease(myContentStream); 
}

void myOperator_BMC(CGPDFScannerRef s, void *info)
{
    const char *name;
    CGPDFScannerPopName(s, &name);
}

(您需要完成并调整此代码以符合您的要求)

第二:回复toucheEnded消息以处理这些区域的点击并使UI响应。