我使用itext7
,我需要从pdfformfield中的acroform获取字体颜色
。
我在 PdfFont
中没有找到此属性。
我该怎么做?
最佳答案
可以使用检索表单字段默认外观的文本颜色
Color textColor = field.getColor();
对于 PdfFormField 字段
。
但请注意:
iText 7 仅提取使用便利运算符 g、rg 和 k 之一设置的文本颜色用于分别设置 DeviceGray、DeviceRGB 和 DeviceCMYK 非描边颜色。如果使用不同的运算符选择颜色或者根本没有颜色设置运算符,将返回
null
。我还没有观察到使用其他颜色设置运算符具有表单字段默认外观的 PDF。因此,根据我的经验,这种实现就足够了。
如果字段是富文本字段,则默认样式字符串可能会否决默认外观中的任何内容,因此使用
getColor()
检索到的颜色可能不正确。不过,在这种情况下,填写该字段的用户可以自由使用不同的颜色。因此,在这种情况下,尝试检索“字段的文本颜色”无论如何都是有问题的。
PDF 处理器或 PDF 中的 JavaScript 代码可以忽略或覆盖默认外观颜色。因此,您永远无法确定此处返回的颜色实际上是用户最终将文本颜色感知为的颜色。
关于java - 如何从 acroform 获取字体颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59089209/