如果我使用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文件外使用时,字体名称有连字符。
答案 0 :(得分:1)
从getPostscriptFontName()
获取的名称是字体文件中的实际名称。对于TrueType字体,这是使用BaseFont
TrueTypeFont.java
line 498 in 5.1.1.3}的My-Awesome-Font-Bold
方法解析的。
为什么Adobe使用逗号?这就是他们决定使用的东西。如果我猜他们可能会选择逗号,因为某些字体在其名称中使用连字符,但大多数(如果有的话)从不使用逗号。因此,他们选择了My-Awesome-Font,Bold
而不是{{1}}。用户可以告诉他们使用的是字体的粗体变体,而不仅仅是恰好包含“粗体”字样的字体。