字体名在一个上下文中包含逗​​号,在另一个上下文中包含连字符

时间:2011-12-02 14:57:55

标签: itext acrobat

如果我使用Acrobat Professional 9创建PDF,包含一个句子并将该句子设为“Georgia Bold”,然后保存,我最终会得到一个引用字体“Georgia,Bold”的PDF。

如果我从c:\ windows \ fonts \ georgiab.ttf获取该字体并使用以下代码和itext 4.2查询它,我最终得到的字体名称为“Georgia-Bold”

   String path = "georgiab.ttf";
   BaseFont baseFont = BaseFont.createFont( path, BaseFont.WINANSI, BaseFont.EMBEDDED );
   System.out.println( "Font " + baseFont.getPostscriptFontName() + " found in " +  path );

我正在尝试确定为什么在PDF文件中使用时,字体名称有逗号,而在PDF文件外使用时,字体名称有连字符。

1 个答案:

答案 0 :(得分:1)

getPostscriptFontName()获取的名称是字体文件中的实际名称。对于TrueType字体,这是使用BaseFont TrueTypeFont.java line 498 in 5.1.1.3}的My-Awesome-Font-Bold方法解析的。

为什么Adobe使用逗号?这就是他们决定使用的东西。如果我猜他们可能会选择逗号,因为某些字体在其名称中使用连字符,但大多数(如果有的话)从不使用逗号。因此,他们选择了My-Awesome-Font,Bold而不是{{1}}。用户可以告诉他们使用的是字体的粗体变体,而不仅仅是恰好包含“粗体”字样的字体。