我有使用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現在正確顯示!我用下面的命令行:
你在模擬器上還是在設備上,或兩者兼得?你可以在Mac上預覽打開PDF並且它能正確渲染嗎?它有多大/多麼複雜(藍圖往往由數百萬行碎片組成,而不是在iOS上展示的最好的東西)。通常,iOS查看器的行爲與舊的1級或2級PostScript RIP類似。它有許多內存問題和實現限制,並沒有顯示出很多「現代」PDF功能。不支持疊印來命名一個。根據您的PDF的構建方式,這可能很容易成爲您看到的原因。 –