在iOS中以流形式阅读加密PDF



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

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

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

有人能用QLPreviewController(QuickLaunch框架)或CGPDFDocument提出任何方法吗?

谢谢!

CGPDFDocumentCreateWithProvider(provider)呢?其中provider是用CGDataProviderCreateDirect()CGDataProviderCreateSequential()创建的?

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

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

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

最新更新