使用CGPDF API在iPad中显示PDF

时间:2010-06-15 05:40:18

标签: iphone ipad pdf-generation cgpdfdocument

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

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

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

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

让我知道是否做过或做过这样的事情。

由于 AJ

2 个答案:

答案 0 :(得分: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!

网上有一些关于如何做到这一点的好例子......

我会在准备就绪后立即在此处提供链接/解决方案!

答案 1 :(得分:3)

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

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