【问题标题】:How to change the color of a formfield its value has been modified by the user?如何更改表单字段的颜色,其值已被用户修改?
【发布时间】:2021-11-26 11:19:45
【问题描述】:

我必须使用 Itext 生成一个 Pdf 文件,并使其可由用户编辑。感谢 Itext,这几乎没问题。还是有问题。如何显示某个字段已被用户修改,也就是说,如何显示最终 Pdf 中某个字段的值不是已预设的值?例如,我正在考虑加粗字体或更改字段的背景,但我不知道该怎么做。

我尝试使用 pdfAction.createJavaScript,但似乎无法更改我的 Pdf 元素的样式,因为其中没有 css。有人可以帮忙吗?

这是我的一段代码:

PdfTextFormField champTempsMinutes = PdfTextFormField.createMultilineText(
        pdfDocument,
        new Rectangle(currentX, currentY, 20f, 14f),
        "champTempsMinutes",
        "_ _");

champTempsMinutes.setFontAndSize(fontHelvetica, 8);
champTempsMinutes.setJustification(1);
champTempsMinutes.setFieldName("toto");
                            
champTempsMinutes.setAdditionalAction(
        com.itextpdf.kernel.pdf.PdfName.V,
        PdfAction.createJavaScript("app.alert(\"Mouse Enter\")"));
        PdfAction.createJavaScript("app.alert(this.getField('toto').value);"));

【问题讨论】:

    标签: java colors itext form-fields


    【解决方案1】:

    您可以使用以下附加操作将表单域周围的边框变为红色:

    field.setAdditionalAction(PdfName.V,
                    PdfAction.createJavaScript("this.getField('fName').strokeColor = color.red;")
    

    请注意,它仅适用于支持 JS 的查看器。 Adobe Reader/Acrobat 和 Foxit 也在其中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-17
      • 2013-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多