在iOS中将加密的PDF读取为流

时间:2012-08-06 12:41:23

标签: objective-c ios

我想在iOS中读取加密的PDF(使用我自己的密钥加密)作为流。我的想法是,我可以以块的形式解密文档并将其传递给渲染器,而不是解密整个文档,这不是一个选项,因为:

  1. 解密整个文档会更慢
  2. 如果文档很大,那么我无法将整个解密内容放入内存
  3. 写入磁盘不是一种选择,因为即使是短暂的间隔,我也不希望磁盘上任何位置的解密副本。
  4. 我知道我们可以使用异步URL请求使用UIWebView执行此操作;但UIWebView对我来说太慢了;特别是大PDF。

    有人可以通过QLPreviewController(QuickLaunch框架)或CGPDFDocument建议任何方法吗?

    谢谢!

1 个答案:

答案 0 :(得分:0)

使用CGPDFDocumentCreateWithProvider(provider)provider创建CGDataProviderCreateDirect()的{​​{1}}呢?

我没有使用过这些功能,但它们似乎可以满足您的需求。

但可能是Core Graphics会将整个PDF文档缓存在内存或临时文件中。

原因是PDF是一种结构化格式,包含许多对象(引用文档中的其他对象)和目录。目录通常位于文档的末尾,必须先读取才能读取任何对象。