概述
我在iPad应用程序中生成一个四页PDF文档,该文档使用自定义字体Trade Gothic。它正确嵌入到应用程序中,看起来很棒。
然而,该应用程序的一部分是通过电子邮件发送PDF作为留下的信息。此发送文件将所有字体显示为默认sans类型,在少数系统上,我收到错误无法找到或创建字体'RVYPRT + TradeGothicLTStd-Light'。某些字符可能无法正确显示或打印。
我正在使用UIKit Framework生成PDF。这是一个使用相同过程的教程:http://www.ioslearner.com/generate-pdf-programmatically-iphoneipad/
我的问题
如何将字体嵌入PDF输出中,以便在发送后将其正确呈现为自定义字体而非默认类型。
提前致谢!
更新1:我发现的类似未解答的问题
更新2 :有关字体的更多信息
字体http://store1.adobe.com/cfusion/store/html/index.cfm?store=OLS-US&event=displayFont&code=TRDQ10003000是一个OpenType字体,允许通过许可证进行嵌入。
此外,使用的默认字体是标准字体。
如果PDF文件中缺少某些字体,Adobe Acrobat和Adobe Reader将自动尝试使用这些程序中内置的多个Master字体之一来模拟丢失的字体。这样,文档将不会像设计者想要的那样完全表示,但至少文本不会重排。用于此的多主字体是: Adobe Serif MM 和 Adobe Sans MM
来源:http://www.prepressure.com/pdf/basics/fonts
更新3:字体在PDF中引用,但未嵌入
该应用似乎正在尝试嵌入字体,但它们未正确嵌入。以下是File - >下嵌入字体的屏幕截图。文件属性:
我看到的第一个问题是,当字体实际上是OpenType字体时,字体被列为Type 1。正如预期的那样,“实际字体”是Sans MM(找不到嵌入字体时使用的字体。)
更新4:在另一个PDF(使用Adobe而非iPad应用程序生成)中,所需的字体嵌入为子集。我不确定,但这让我相信它应该可以以编程方式执行相同的操作。
答案 0 :(得分:8)
您正在使用的字体以及“看起来很棒”的字体 TradeGothic ,根据其许可证,不允许嵌入到PDF(或其他)文档中。
(为什么字体设计师想要做到这一点超出了我的小脑袋。毕竟他们出售了许可证将其用于文件,不是吗? - 为什么[因为我已经经历过 - 最近一家大公司会围绕一种这样的字体设计他们的企业形象,但随后又太便宜而只购买不允许嵌入的字体许可证,因此迫使他们的员工发出蹩脚的字体给他们的客户提供的PDF只会让这个故事更加疯狂......)
从第二次更新中可以看出,您已经发现了这一事实。
您似乎误解的是文档属性'截图:
那些提供"无法找到或创建字体' RVYPRT + TradeGothicLTStd-Light'的PDF接收系统。某些字符可能无法正确显示或打印" 没有错误。他们只是......
我的简单建议,多年来在我的客户面前重复了数百次:
<强>更新强>
基本上,&#34;嵌入标志&#34;可以表达四种(重要的)不同级别的限制。 (实际上,此标志仅适用于TrueType和OpenTypes,而不适用于较老式的PostScript Type1字体。从技术上讲:此标志的名称是 fsType ,它是位掩码,它包含在TrueType和OpenType字体的 OS / 2 表中。)
这些级别指定类型代工厂允许在文档中嵌入字体的位置和时间以及用于何种目的(不仅包括PDF,还包括Word,OpenOffice或任何其他文档类型:
嵌入&#39;还有两个(不太重要)的限制。字体标志可能表示:
Adobe软件在很多情况下,当字体本身包含 fsType 标志时,会将此字体视为允许打印+仅预览嵌入
可以从Adobe Whitepaper about 'Font Embedding Guidelines for Third-party Developers了解有关此主题的详细信息。
答案 1 :(得分:0)
是否可以将嵌入字体更改为允许嵌入的另一种字体?