我可以以编程方式将链接注释添加到PDF吗?

时间:2013-05-08 23:10:12

标签: ios parsing pdf annotations quartz-2d

我正在制作一款使用UIWebView显示PDF的iPad应用。我有一个PDF,我想以编程方式添加链接。为简单起见,我们可以说有10个段落。它们都已编号,并且其中包含几行文字。我希望能够以某种方式添加PDF的基本链接,以便在触摸第2段时,我的UIWebView可以处理与第2段相关联的请求。

我不知道内部的PDF结构是什么样的。我不知道如何将其扩展到几百页的每个段落。但我想知道我是否可以以某种方式向PDF添加链接或HTML,以便我可以使用我的应用程序来操作它。

谢谢!

要清楚,我正在iOS设备上查看此PDF,但我认识到我的问题的解决方案可能与Cocoa-touch框架没有任何关系。我正在寻找任何类型的解决方案,允许我添加不可见的链接到我的PDF的某些区域。

1 个答案:

答案 0 :(得分:1)

如果您希望iPad应用识别来自pdf的文本字段,按钮和链接。您可以编辑实际的pdf(您需要一个Adobe Acrobat版本)并将这些字段添加到pdf中。在您的ios代码中使用以下内容解析pdf字段:

在解析方法中:

    -(void)parse:(CGPDFPageRef)page
{
    for (int i = 0; i < CGPDFArrayGetCount (annotations); i++)

CGPDFArrayGetCount返回PDF数组中的项目数。

循环中的

获取字段名称:

    if (CGPDFDictionaryGetString(dict, "T", &stringRef))
    {
        char *s = (char *) CGPDFStringGetBytePtr(stringRef);
        fieldName = [NSString stringWithCString:s encoding:NSUTF8StringEncoding];
    }

如果字段名称匹配,请检查您要执行的操作,例如“button_1”或“hlink_3”:

    if ([fieldName isEqualToString:@"hlink_3"])
{
        // do whatever, example add a button where the field was
        UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
        button.frame = rect;
        [self addSubview:button];
}

还有更多内容,但这是一般的想法。

相关问题