Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Itext Fontnames在一个上下文中包含逗号,在另一个上下文中包含连字符_Itext_Acrobat - Fatal编程技术网

Itext Fontnames在一个上下文中包含逗号,在另一个上下文中包含连字符

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

如果我使用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()+”位于“+路径中);
我试图确定为什么在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 );