我正尝试在我的PDF上创建一个矩形区域,该区域将转到URL。PDF是使用核心图形例程在iOS应用程序中创建的。
在搜索任何有类似问题的人时,我发现了这个Stack Overflow问题:
Embed hyperlink in PDF using Core Graphics on iOS
如果我使用上面问题答案中提供的代码,它在某种程度上对我来说是有效的。显示的文本是一个可点击的链接,但是如果我指定的矩形比文本大得多,那么只有文本是可点击的。此外,我对代码进行了一些修改,以便可以分别提供标签和URL,当我这样做并提供了一个空字符串时,矩形中的任何地方都没有可单击的内容。
但是,如果我使用UIKit例程来创建PDF (基本上是UIGraphicsBeginPDFContextToFile和子代),那么对UIGraphicsSetPDFContextURLForRect的调用将在生成的PDF文件中创建一个可单击的区域,即使我没有提供任何文本。
下面是我用来创建矩形链接的方法:
+ (void)rectLink:(NSString *)urlString frame:(CGRect)frameRect cropBox:(CGRect)cropBoxRect sourceContext:(CGContextRef)context
{
UIGraphicsPushContext(context);
#ifdef OUTPUT_TEXT_LINK_OUTLINE
CGContextSetLineWidth(context, 5.0);
CGContextSetStrokeColorWithColor(context, [UIColor purpleColor].CGColor);
CGContextStrokeRect(context, frameRect);
#endif
NSURL *url = [NSURL URLWithString:urlString];
UIGraphicsSetPDFContextURLForRect(url, frameRect);
UIGraphicsPopContext();
}
( OUTPUT_TEXT_LINK_OUTLINE定义是我用来测试的东西,用来确保我传入的矩形实际上是它应该在的位置。)
这是我在PDF生成的第一个页面上对上面的方法进行的调用:
[self rectLink:@"http://stackoverflow.com" frame:CGRectMake(474,22,28,28) cropBox:cropBoxRect sourceContext:context];
变量cropBoxRect指的是当前页面的裁剪框,context是我在文档开头的CGPDFContextCreateWithURL调用中保存的值。
发布于 2015-05-13 20:18:27
最好是编写自己的编写器来编写这样的注释到pdf,而不是使用核心图形API,因为苹果还没有将PDFKit引入可可触摸,
这就是如何将任何类型的批注添加到pdf中。
https://stackoverflow.com/questions/19145505
复制相似问题