2010-04-07 124 views
5

我的iPhone應用程序創建PDF文件(以Arial字體顯示)。普通的iPhone 3.1.x版本效果很好(除了在Google Docs或BlackBerry上無法正確查看iPhone上創建的PDF文件的已知問題)。在iPad上創建的PDF文件在Windows上無法正確顯示

由於我正在更新我的項目的OS 3.2和iPad,它的工作原理是一樣的,並且PDF文件在iPhone,iPad和Mac OS X(預覽應用程序)上看起來仍然很棒。但是現在在Windows(Vista)上,Acrobat 9.3.1顯示「無法提取嵌入字體'XYZABC + ArialMT',有些字符可能無法正確顯示或打印」。

事實上,Acrobat然後使用一些通用字體,而不是Arial(或任何其他字體我試試)。

每次創建PDF文件(XYZABC每次都會改變),Quartz 3.2似乎會生成這些「隨機」嵌入字體名稱。我無法分辨問題是否只是帶有加號的有點奇怪的「臨時」嵌入字體名稱,或者Quartz 3.2嵌入字體的方式。

我試過我現有的代碼(使用CGPDFContext*函數),以及新支持的UIGraphics*函數,結果相同。

如何在iPad上創建PDF文件以在Windows上正確顯示?

+0

因此,它看起來像在Windows上的其他(免費)PDF閱讀器的樣本可以讀取這些文件就好了,所以它(喘氣)可能只是Acrobat 9.3.1。這將是諷刺。 – Morgan 2010-04-07 18:23:46

+0

我遇到與Acrobat reader 9.4.0相同的問題! – Icode4food 2010-10-20 17:33:47

回答

3

重要更新:截至iOS 4.2,Apple已修復了我報告的錯誤; iOS上的Quartz生成的PDF現在包含正確嵌入的字體。我將按原樣保留此答案的其餘部分,但不在iOS 4.2或更高版本中使用此機制。

如果無法使用Adobe Reader,請遵循PDF格式的規範。我調查了這一點,因爲它影響了我的一個應用程序,並在此處記錄了我的發現:http://blog.nomzit.com/2010/08/18/annoying-bug-in-quartz-pdfcontext-font-handling/

有一個簡單的解決方法可以使Adobe Reader的行爲與更有用的替代方法相同。

我也已報告的錯誤,以蘋果

+0

感謝這篇文章。我會投票你的答案,但還不能。 – Morgan 2010-08-20 19:24:17

+0

你的意思是「......向Adobe報告錯誤」? – 2010-09-01 08:37:47

+0

不,Adobe Reader在這種情況下表現正確,它是Quartz製作的PDF是錯誤的 – 2010-09-09 21:12:22

0

除了菲爾的分析,我發現一些Windows用戶沒有安裝的標準字體(如黑體)的一個或多個。通過Quartz生成的PDF將引用這些標準字體之一,Adobe Reader將使用其查找表中的下一個最接近的字體來呈現這些字體,從而導致奇怪的PDF。 iPhone/iPad標準系統字體沒有正確嵌入,可能是由於Phil在Quartz生成的PDF中找到的。

在我遇到的所有情況中,這是通過讓用戶在其Windows機器上安裝Helvetica(或任何其他缺失的字體)解決的,此時PDF將正確呈現。

相關問題