使用CGPDFDocument或其他方式,是否可以访问PDF文档中的“内部”链接?我正在构建一个简单的阅读器应用程序,并希望以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做出相应的响应。
如果您正在使用Quartz打开和查看PDF文件,那么是的,您将可以访问内部链接。Quartz还允许您向PDF添加新链接。我没有任何iPhone/Mac开发的第一手经验,但如果他们允许您添加超链接却不使用它们,那将非常奇怪。