2014-02-18 27 views
1

我有使用CGContextDrawPDFPage函数进行PDF呈现的问题。我开发了一个iPad应用程序(针对iOS 7),它使用PDF来完成特定的事情,而且我不能使用UIWebView,因此请不要提示它。我们的其中一位客户报告显示的是正在呈现的白页,而其他每个PDF查看器都会呈现PDF。CGContextDrawPDFPage呈现有效PDF的白页

为了确保我自己的代码中没有任何愚蠢的错误,我将苹果的ZoomingPDFViewer(https://developer.apple.com/library/ios/samplecode/ZoomingPDFViewer/Introduction/Intro.html)替换为我们客户提供的PDF,然后启动它:确实白页是正在渲染而不是正确的内容(从建筑物蓝图扫描)。

我100%肯定不是Apple的ZoomingPDFViewer示例中的加载,查看或呈现代码,因为我尝试了其他每个PDF文件用这个例子查看就好了!

我试图获得在这里上传PDF的权限,但我还没有它,所以我的问题是:没有访问PDF错误地渲染,有任何人有任何想法这可能是什么? PDF渲染器中是否有任何限制可能导致白页被渲染?

在此先感谢!

编辑:(!)的PDF是在所有其他PDF浏览器完美呈现,包括但不限于iPad的电子邮件应用程序,Mac上的Safari OS X,预览在Mac OS X,Acrobat Reader软件在Windows ,Windows上的FoxIt阅读器。

编辑:将原始的PDF文件(这是一个PDF 1.3)在Linux上使用的Ghostscript到PDF 1.5解决了这个问题:PDF现在正确显示!我用下面的命令行:

​​

+0

你在模拟器上还是在设备上,或两者兼得?你可以在Mac上预览打开PDF并且它能正确渲染吗?它有多大/多么复杂(蓝图往往由数百万行碎片组成,而不是在iOS上展示的最好的东西)。通常,iOS查看器的行为与旧的1级或2级PostScript RIP类似。它有许多内存问题和实现限制,并没有显示出很多“现代”PDF功能。不支持叠印来命名一个。根据您的PDF的构建方式,这可能很容易成为您看到的原因。 –

回答

0

iOS的PDF渲染引擎不支持JPEG2000图像。如果您的扫描图像是这样的图像,那么它将不会显示。