我可以以编程方式将链接注释添加到PDF中吗?
问题描述:
我正在制作一个使用UIWebView来显示PDF的iPad应用程序。我有一个PDF,我想以编程方式添加链接。为了简单起见,假设有10段。他们都被编号,并有几行文字。我想能够以某种方式添加到PDF的基本链接,以便如果第2段被触摸,那么我的UIWebView可以处理与第2段相关的请求。我可以以编程方式将链接注释添加到PDF中吗?
我不知道什么是PDF的结构就像在里面。我不知道如何将这个缩放到几百页的每一段。但我想知道如果我可以添加一个链接或HTML到PDF,以便我可以用我的应用程序来操纵它。
谢谢!
要清楚,我正在iOS设备上查看此PDF,但我认识到我的问题的解决方案可能与Cocoa-touch框架没有任何关系。我正在寻找任何类型的解决方案,这将允许我添加到PDF的某些区域的不可见链接。
答
如果你想让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];
}
有更多的是它,但这是一般的想法。
几年后,回过头来看这个答案,你从哪里得到'rect'?这是我现在运行的主要问题,即如何获取PDF中文本的位置,因为它与主视图的坐标系有关。 – Lizza 2016-02-17 05:24:09