11

我了解到 Apple 在 SDK 3.2 中发布了用于绘制 PDF 上下文的 CGPDF API。

我从这些 API 中了解到,您可以将 PDF 绘制到数据对象或 PDF 文件中。然后,您可以将其导出到您的沙箱目录或作为附件添加到邮件中。

但我不确定我们是否可以使用这些 API 从应用程序包中读取 PDF 并在屏幕上逐页显示给用户。我想做的是在杂志阅读器应用程序中打开杂志的 PDF。

我还想知道我们是否可以识别 PDF 文件中的链接并在应用程序中打开它们。

让我知道是否做过或做类似的事情。

谢谢阿杰

4

2 回答 2

12

在 API 文档中有一种加载 PDF(使用 Quartz)的方法: CGPDFDocument是您需要的对象,而CGPDFDocumentCreateWithURL可能是您正在寻找的构造函数。

以下是一些有关如何操作的示例:http: //developer.apple.com/mac/library/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_pdf/dq_pdf.html#//apple_ref/doc/uid/TP30001066-CH214- TPXREF109

我在这上面花了很多时间——看来您需要使用 CATiledLayers 来正确缩放这些 PDF!

网上有一些很好的例子说明如何做到这一点......

一旦我准备好东西,我会在这里放一个链接/解决方案!

于 2010-06-16T12:19:52.117 回答
4

使用 Quartz API 显示 PDF 非常简单。但是没有对链接注释的原生支持。基本上,您需要解析 pdf 中的“Annots”字典,然后找到正确的页面(可以是 GoTo 引用,或命名引用,或约 10 种其他类型;请参阅Adob​​e PDF Reference 1.7文档,关于 Actions 的部分),并计算坐标到显示的页面。

我编写了一个 [商业] 库,其中包括解析链接注释和更多功能。您可能想查看http://pspdfkit.com

于 2011-08-11T12:37:04.753 回答