Pdf IText7如何解码字段';字体对象的默认外观及其属性

Pdf IText7如何解码字段';字体对象的默认外观及其属性,pdf,itext7,Pdf,Itext7,我有一个带有一些字段的AcroForm,我需要获取其中一个字段的字体信息。我知道我必须使用 (PdfFormField)字段。getDefaultAppearance() 但这会导致类似字符串的结果 /Helv 12 Tf 0.25 0.25 0.25 rg` 有没有简单的方法将该字符串解析为PdfFont对象 很明显,我可以从给定的字符串手动解析它,但我怀疑IText有一些实用程序可以为我做到这一点,不是吗 此外,/Helv只是“参考”或类似的东西,显然指向Helvetica,但是如果我有

我有一个带有一些字段的
AcroForm
,我需要获取其中一个字段的字体信息。我知道我必须使用

(PdfFormField)字段。getDefaultAppearance()

但这会导致类似字符串的结果

/Helv 12 Tf 0.25 0.25 0.25 rg` 
有没有简单的方法将该字符串解析为
PdfFont
对象

很明显,我可以从给定的字符串手动解析它,但我怀疑IText有一些实用程序可以为我做到这一点,不是吗

此外,
/Helv
只是“参考”或类似的东西,显然指向
Helvetica
,但是如果我有一些自定义字体呢


谢谢

如果希望在formfield中使用字体,可以使用
PdfFormField#getFont()
方法,这将返回直接使用的
PdfFont
对象。要设置自定义字体,请使用
PdfFormField#setFont(PdfFont font)
,这也将重新创建表单字段的外观。使用
PdfFormField#setFontSize(float fontsize)
设置字段内文本的大小。使用
PdfFormField#setClor(..)
设置文本颜色

从getDefaultAppearance()获取的信息是以pdf语法编写的,可以按如下方式进行分析:

`/Helv 12 Tf 0.25 0.25 0.25 rg`
font-size-Tf
说明为后面的文本说明设置字体(子集)和大小。使用插入到pdf中的名称引用字体。在本例中为/Helv,可能会指向Helvetica的(子集)。它不一定是helvetica,但是,一些小丑可以插入漫画Sans并将其命名为/Helv。12是字体大小

x y z rg
方法使用RGB值设置字体的颜色,x、y和z的相对强度值在[0.0,1.0]的区间内。

关于Helv等:通常相关字体资源字典中的字体名称映射到字体定义。不过,DefaultAppearance中的字体名称有时不是,请参阅使用/Helv、/HeBo、。。。在里面