如何从 acroform 获取字体颜色?

How to get font color from acroform?

我使用 itext7,我需要从 pdfformfield 中的 acroform 获取 font color
我没有在 PdfFont.
中找到这个 属性 我该怎么做?

可以使用

检索表单域默认外观的文本颜色
Color textColor = field.getColor();

一个 PdfFormField field.

不过请注意:

  • iText 7 仅提取使用运算符 grg 和 [=32 之一设置的文本颜色=]k 是设置 DeviceGrayDeviceRGBDeviceCMYK[=42= 的便捷操作符] 非描边颜色。如果使用不同的运算符选择颜色或根本没有颜色设置运算符,将返回 null

    我还没有观察到使用其他颜色设置运算符的具有表单域默认外观的 PDF。因此,根据我的经验,该实施就足够了。

  • 如果字段是富文本字段,默认样式字符串可能会否决默认外观中的任何内容,因此使用 getColor() 检索的颜色可能不正确。

    不过,在这种情况下,填写该字段的用户可以自由使用不同的颜色。因此,在这种情况下,尝试检索 "the text color of the field" 无论如何都是有问题的。

  • PDF 处理器或 PDF 中的 JavaScript 代码可以忽略或覆盖默认外观颜色。因此,您永远无法确定此处返回的颜色实际上是用户最终将文本颜色感知为的颜色。