在iText上填写复选框
我正在尝试使用iText修改现有PDF。 我的代码目前很好地编辑了文本字段,但我无法勾选或取消选中复选框。
PdfReader reader = new PdfReader(INPUTFILE); int n = reader.getNumberOfPages(); PdfStamper filledOutForm = new PdfStamper(reader, new FileOutputStream("WrittenForm.pdf")); AcroFields fields = filledOutForm.getAcroFields(); //not working fields.setField("checkbox", "On"); //working fields.setField("textfield1", "infinite road"); fields.setField("textfield2", "jayboy"); filledOutForm.close();
有任何想法吗?
解决了:
String states[] = fields.getAppearanceStates("checkbox"); //prints array values - returns 'yes, no' System.out.println(Arrays.toString(states));
正如我在这里看到的 ,您需要使用以下方法检查可用状态:
String[] states = fields.getAppearanceStates("checkbox");
然后根据此String[]
的选项设置状态
而
fields.getAppearanceStates("checkbox");
通常会返回正确的值,在我的一些复选框上,无论出于何种原因,它返回一个空数组。 查看Acrobat Pro中的表单,我发现发送到setField的正确字符串在字段属性的“选项”选项卡中称为“导出值”。 你也可以在那里改变它。
filledOutForm.setFormFlattening(true);