更改iText中复选框字段的外观

我需要能够在渲染pdf时根据需要自定义复选框填充类型 .

我必须只使用 AcroFields (pdfStamper.getAcroFields())来做这件事,因为我在范围内唯一能提供给我的东西 . 我已经尝试了大约一百件事,包括下面列出的一件事,这是我对如何做到这一点的最好猜测 .

PdfDictionary dictionary = (PdfDictionary)  acrofields.getFieldItem("ABCD").getWidget(0).get(PdfName.MK);
  dictionary.put(PdfName.CA, new PdfString("8", PdfObject.TEXT_UNICODE));

ABCD仅用于测试 .

我非常困难,任何帮助都将非常感激 . 我能够更改字典中的值,但是当我将pdf写入文件时似乎没有任何影响 . 其他更改(例如将复选框设置为选中/取消选中)以及填充文本字段 . 所以我非常惊讶和困惑为什么这不起作用 .

回答(1)

2 years ago

你不清楚我期待看到什么 . 你想看文字"8"吗?在这种情况下,更改 Headers 是不够的 . 您还需要更改外观 . 您可以在 /AP 键下找到可能的外观 . 如果是复选框,您将在正常外观下找到两种可能的外观状态( /N ) . 这些XObject定义了在呈现PDF时看到的内容 .