java - 如何从 acroform 获取字体颜色?

标签 java itext itext7

我使用itext7,我需要从pdfformfield中的acroform获取字体颜色
我在 PdfFont 中没有找到此属性。
我该怎么做?

最佳答案

可以使用检索表单字段默认外观的文本颜色

Color textColor = field.getColor();

对于 PdfFormField 字段

但请注意:

  • iText 7 仅提取使用便利运算符 grgk 之一设置的文本颜色用于分别设置 DeviceGrayDeviceRGBDeviceCMYK 非描边颜色。如果使用不同的运算符选择颜色或者根本没有颜色设置运算符,将返回 null

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

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

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

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

关于java - 如何从 acroform 获取字体颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59089209/

相关文章:

java - 如何理解pdf表单标志?

c# - ASP.NET无法使用itext7下载PDF(但可以保存到磁盘)

java - Lauch4j .ini文件指定jre路径

java - Java中正则表达式查找相同字符是否重复3次或以上

java - 如何允许用户在 FilenameFilter 中编写自己的预定义方法(例如accept())的实现

c# - 使用 Columntext ITextSharp 旋转多行文本

java - 如何对文本进行断字?

c# - 如何从 PDF 中提取所有值?

java - 运行本地 Java 小程序来访问 Safari 上的本地文件系统

java - 使用字符串值创建变量名