1

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

  1. 解密整个文档会比较慢
  2. 如果文档很大,那么我无法将整个解密内容放入内存
  3. 写入磁盘不是一种选择,因为我不希望文档的解密副本位于磁盘上的任何位置,即使是很短的时间间隔。

我知道我们可以通过 UIWebView 使用异步 URL 请求来做到这一点;但 UIWebView 对我来说太慢了;尤其是大型 PDF。

有人可以建议使用 QLPreviewController(QuickLaunch 框架)或 CGPDFDocument 执行此操作的任何方法吗?

谢谢!

4

1 回答 1

0

CGPDFDocumentCreateWithProvider(provider)where provideris created with CGDataProviderCreateDirect()or呢CGDataProviderCreateSequential()

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

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

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

于 2012-08-06T13:20:02.267 回答