我使用itext7
,并且需要从pdfformfield中的acroform获取font color
。
我在PdfFont
中找不到此属性。
我该怎么办?
答案 0 :(得分:1)
可以使用以下方式检索表单字段默认外观中的文本颜色
Color textColor = field.getColor();
PdfFormField field
。
不过请注意:
iText 7仅提取使用便捷运算符 g , rg 和 k 之一设置的文本颜色分别设置 DeviceGray , DeviceRGB 和 DeviceCMYK 的不描边颜色。如果使用其他运算符选择颜色,或者根本没有颜色设置运算符,则将返回null
。
我尚未使用其他颜色设置运算符观察到具有表单字段默认外观的PDF。因此,以我的经验,这种实现就足够了。
如果该字段是富文本字段,则默认样式字符串可能会覆盖默认外观中的所有内容,因此使用getColor()
检索的颜色可能不正确。
但是,在这种情况下,填写该字段的用户可以自由使用不同的颜色。因此,在这种情况下,尝试检索“字段的文本颜色”还是有问题的。
PDF中的PDF处理器或JavaScript代码可以忽略或覆盖默认外观颜色。因此,您永远无法确定此处返回的颜色实际上是用户最终将文本颜色识别为的颜色。