【问题标题】:PDF files created on iPad don't display correctly on Windows在 iPad 上创建的 PDF 文件在 Windows 上无法正确显示
【发布时间】:2011-02-05 02:06:37
【问题描述】:

我的 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 上正确显示?

【问题讨论】:

  • 所以,看起来 Windows 上的其他(免费)PDF 阅读器样本可以很好地阅读这些文件,所以它(喘气)可能只是 Acrobat 9.3.1。那太讽刺了。
  • 我在使用 Acrobat reader 9.4.0 时遇到了同样的问题!

标签: iphone pdf ipad fonts cgpdfcontext


【解决方案1】:

重要更新:从 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 报告了这个错误

【讨论】:

  • 感谢这篇文章。我会投票赞成你的答案,但还不能。
  • 您的意思是“...向 Adob​​e 报告了该错误”?
  • 不,Adobe Reader 在这种情况下表现正确,是 Quartz 生成的 PDF 错误
  • 博客链接失效
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

      • 感谢 eli 提供此链接。确认不只是我们是有帮助的。
      猜你喜欢
      • 2017-03-01
      • 1970-01-01
      • 2013-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多