5

我的 iPhone 应用程序创建 PDF 文件(Arial 字体)。普通的 iPhone 3.1.x 版本效果很好(除了在 iPhone 上创建的 PDF 文件无法在 Google Docs 或黑莓上正确查看的已知问题)。

当我为 OS 3.2 和 iPad 更新我的项目时,它的工作原理是一样的,而且 PDF 文件在 iPhone、iPad 和 Mac OS X(预览应用程序)上仍然看起来很棒。但现在在 Windows (Vista) 上,Acrobat 9.3.1 显示“无法提取嵌入字体 'XYZABC+ArialMT'。某些字符可能无法正确显示或打印”。

事实上,Acrobat 然后使用一些通用字体而不是 Arial(或我尝试的任何其他字体)。

Quartz 3.2 似乎在每次创建 PDF 文件时都会生成这些“随机”的嵌入字体名称(XYZABC 每次都会改变)。我不知道问题是否只是带有加号的有点奇怪的“临时”嵌入字体名称,还是 Quartz 3.2 嵌入字体的方式。

我已经尝试了我现有的代码(使用CGPDFContext*函数)以及新支持的UIGraphics*函数,结果相同。

如何在 iPad 上创建 PDF 文件以在 Windows 上正确显示?

4

4 回答 4

3

重要更新:从 iOS 4.2 开始,Apple 已经修复了我报告的错误;从 iOS 上的 Quartz 生成的 PDF 现在包含正确嵌入的字体。我将保留此答案的其余部分,但不要在 iOS 4.2 或更高版本上使用此机制。

Adobe Reader 是正确的,如果没有帮助的话,遵循 PDF 规范。我对此进行了调查,因为它影响了我的一个应用程序并在此处记录了我的发现:http://web.archive.org/web/20180909095127/http: //blog.nomzit.com/2010/08/18/annoying- bug-in-quartz-pdfcontext-font-handling/

那里记录了一个简单的解决方法,它使 Adob​​e Reader 的行为与更有用的替代方法相同。

我还向 Apple 报告了这个错误

于 2010-08-18T20:01:32.980 回答
1

尝试在 Windows 上使用Foxit Reader而不是 Adob​​e Reader 打开 PDF 文件。它对我有用。

于 2010-08-04T20:37:34.517 回答
0

在 iPad 上使用 Pages,也会出现同样的问题。我有兴趣找到答案:

http://discussions.apple.com/thread.jspa?threadID=2389034&tstart=0

于 2010-04-13T18:05:05.370 回答
0

除了 Phil 的分析之外,我还发现一些 Windows 用户没有安装一种或多种标准字体(如 Helvetica)。通过 Quartz 生成的 PDF 将引用其中一种标准字体,Adobe Reader 将使用其查找表中的下一个最接近的字体呈现该字体,从而导致 PDF 看起来很奇怪。iPhone / iPad 标准系统字体未正确嵌入,可能是由于 Phil 在 Quartz 生成的 PDF 中发现的内容。

在我遇到的所有情况下,这都是通过让用户在他们的 Windows 机器上安装 Helvetica(或任何其他缺失的字体)来解决的,此时 PDF 将正确呈现。

于 2010-08-20T21:14:05.050 回答