Itext Fontnames在一个上下文中包含逗号,在另一个上下文中包含连字符
如果我使用Acrobat Professional 9创建一个PDF,其中包含一个句子,并将该句子改为“Georgia Bold”,然后保存,我最终得到一个引用字体“Georgia,Bold”的PDF 如果我从c:\windows\fonts\georgiab.ttf中获取该字体,并使用以下代码和itext 4.2对其进行查询,我最终得到的字体名为“Georgia Bold” 字符串path=“georgiab.ttf”; BaseFont BaseFont=BaseFont.createFont(路径,BaseFont.WINANSI,BaseFont.EMBEDDED); System.out.println(“Font”+baseFont.getPostscriptFontName()+”位于“+路径中);Itext Fontnames在一个上下文中包含逗号,在另一个上下文中包含连字符,itext,acrobat,Itext,Acrobat,如果我使用Acrobat Professional 9创建一个PDF,其中包含一个句子,并将该句子改为“Georgia Bold”,然后保存,我最终得到一个引用字体“Georgia,Bold”的PDF 如果我从c:\windows\fonts\georgiab.ttf中获取该字体,并使用以下代码和itext 4.2对其进行查询,我最终得到的字体名为“Georgia Bold” 字符串path=“georgiab.ttf”; BaseFont BaseFont=BaseFont.createFon
我试图确定为什么在PDF文件中使用时,字体名称有一个逗号,而在PDF文件外部使用时,字体名称有一个连字符。从
getPostscriptFontName()
获得的名称是字体文件中的实际名称。对于TrueType字体,这是在TrueTypeFont.java
()的BaseFont
方法中解析的
为什么Adobe使用逗号?这正是他们决定使用的。如果我猜他们可能选择逗号,因为有些字体在名称中使用连字符,但大多数字体(如果有的话)从不使用逗号。因此,他们选择了
myawesome字体Bold
,而不是myawesome字体Bold
。用户可以看出他们使用的是字体的粗体变体,而不是碰巧有“bold”一词的字体。根据您的回答,我相信如果我想将已安装的字体“Georgia”与PDF“Georgia,bold”中引用的字体匹配,我可以去掉“bold”然后用粗体作为属性?我想是的,但我不能100%确定你所说的“属性”是什么意思。您是在谈论HTML还是类似的东西,其中您指定了一种带有附加细节的基本字体,如“粗体”和/或“斜体”?在iText中,使用FontFactory.getFont(“Georgia”,14,font.bold)
String path = "georgiab.ttf";
BaseFont baseFont = BaseFont.createFont( path, BaseFont.WINANSI, BaseFont.EMBEDDED );
System.out.println( "Font " + baseFont.getPostscriptFontName() + " found in " + path );