在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);