2012-02-16 73 views
0

有没有办法只加载(大)PDF文件?因此,让我们假设:不要加载完整的PDF文件,而只加载前5页。将PDF部分加载到内存中

因为我实际上正在处理大型PDF文件(30 - 50 MB),并且当我调用CGPDFRain保留整个文档,因此完整的30-50 MB保留在内存中。

有人可以帮我吗?没有首先将完整的PDF加载到内存中,是否可以从PDF中提取单页?

有人可以帮我解决这个问题吗?

更新: 由于事实上,我的应用程序需要支持离线访问,应该从本地存储装载PDF。

更新2:现在我尝试了不同的策略,但应用程序仍在内存边缘,因为我一次性将我的PDF完全加载到内存中。但不知何故,应该可以支持大的PDF文件,不是吗?

回答

1

我不知道CGPDFRetain是什么,所以我可能完全关闭。 PDF的设计方式只需要它的一部分就可以正确渲染它。有一种叫做“网页优化”的PDF,它的对象以特殊的方式排列。每个Web服务器都能够发送文档的一个字节范围,并且这两种机制允许部分加载PDF。

您应该详细说明加载PDF的位置。

0

这不是这样的。 CGPDFDocument POINTS指向你的磁盘空间,并有部分缓存在内存中,但从来没有整个文档。

CGPDFDocument存在一些问题,导致内存过于贪婪,但在这种情况下,只需销毁并重新创建CGPDFDocument即可。否则,在CGPDFDocument分配了太多内存后,您的应用程序可能会崩溃。