gpt4 book ai didi

ios - 寻找如何在 iOS 或 Cocoa 上使用 UIGraphicsSetPDFContextURLForRect

转载 作者:可可西里 更新时间:2023-11-01 04:23:54 27 4
gpt4 key购买 nike

我正在玩在 iOS 上操作 PDF(显示但也主要是生成)。

我希望嵌入充当“外部”链接的矩形区域(类似 http://host.tld/path/file 的 URL)。

您知道我在哪里可以找到有关如何使用 UIGraphicsSetPDFContextURLForRect 函数的示例吗?我在 Internet 上绝对找不到任何东西。

如果我理解得很好,唯一的要求是当前图形上下文应该是 PDF“类型”,我想我尊重这一点,因为在上游,我调用 UIGraphicsPushContext 为什么我的 PDF 上下文作为参数(无论如何,这对于像这样的方法是必需的drawAtPoint:我也成功使用了)。

我认为这并不重要,但以防万一我指定这不会发生在 View 子类的 drawRect: 中。

你毫不含糊地说我“全错了”,你说得很对。 iOS 中的图形环境是如此复杂和丰富,我认为目前还没有吸收超过 1% 或 2%。

提前谢谢你。

最佳答案

你是对的,要求是当前图形上下文是PDF上下文。您可以推送它 (UIGraphicsPushContext) 使其处于事件状态,也可以像这样创建上下文:

UIGraphicsBeginPDFContextToFile(path, CGRectMake(0, 0, 612, 792), nil);
UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, 612, 792), nil);
// ...
UIGraphicsSetPDFContextURLForRect(url, rect);
// ...
UIGraphicsEndPDFContext();

UIGraphicsSetPDFContextURLForRect 有两个参数:第一个是您希望链接到达的 url,第二个是当前页面上代表链接区域的矩形。例如,这行将在页面左下角创建一个 url 的链接,链接的大小为 72*72 点:

UIGraphicsSetPDFContextURLForRect(url, CGRectMake(0, 0, 72, 72));

这个方法实际上做的是在 PDF 文件中创建一个链接注释。链接本身没有视觉外观,您必须知道它在那里,否则如果您将鼠标移到查看器中的 PDF 页面上,您可能会偶然发现它。因此,您通常会在页面上画/写一些东西(例如单击此处)并将链接区域设置在文本上方。

更新 - 工作代码片段:

- (void) makePdf {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *pdfFile = [documentsDirectory stringByAppendingPathComponent:@"uigraphics.pdf"];

UIGraphicsBeginPDFContextToFile(pdfFile, CGRectMake(0, 0, 612, 792), nil);
UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, 612, 792), nil);

NSURL* url = [NSURL URLWithString: @"http://www.ipdfdev.com/"];
UIGraphicsSetPDFContextURLForRect(url, CGRectMake(0, 0, 50, 50));

UIGraphicsEndPDFContext();
}

关于ios - 寻找如何在 iOS 或 Cocoa 上使用 UIGraphicsSetPDFContextURLForRect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12451417/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com