这是一个非常笼统的问题,但它是基于特定问题的。我已经为 iPad 创建了一个 pdf 阅读器应用程序,它工作正常,除了某些 pdf 页面总是使应用程序崩溃。我们现在发现,同样的页面也会导致 Safari 崩溃,所以我开始怀疑问题出在 Apple 的 pdf 渲染代码中。
据我所知,崩溃的页面导致渲染库开始疯狂分配内存,直到应用程序被终止。我没有其他东西可以帮助我查明是什么触发了这个过程。
它不一定会发生在最大的文档或形状最多的文档上。事实上,我们还没有找到任何参数来帮助我们预测哪些页面会崩溃,哪些不会。
现在我们刚刚发现,通过允许您合并文档的消费者程序运行页面可以解决这个问题,但我无法检测到哪个属性或元素是关键。从长远来看,手动更改文档也不是我们的选择。我们需要在我们的服务器上运行自动化流程。
我希望对 pdf 文件格式有更深入了解的人能够为我指明一个合理的方向,以寻找可能导致此类行为的文档功能。到目前为止,我所发现的只是关于 JBIG2 图像的一些信息,我认为我们没有这些图像。
最佳答案
无法在 iPad 应用程序或 iPad 版 Safari 上呈现的两个“特殊”PDF 遇到了同样的问题。在我的案例中,问题出在一些半透明的渐变阴影上。
顺便说一下,将 PDF 转换为 postscript,然后再次转换回 PDF,似乎删除了 PDFKit 不喜欢的内部元素。原始文档大小为 1.9 MB,包含大量矢量形状,经过转换过程后,文件大小减小到约 600 KB,并且在 iPad 上完美呈现。
关于iphone - 哪些 pdf 元素可能导致崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2750546/