Java 使用iText库实现可填充文本的复选框和单选按钮

Java 使用iText库实现可填充文本的复选框和单选按钮,java,android,checkbox,itext,itextpdf,Java,Android,Checkbox,Itext,Itextpdf,我已经搜索到谷歌的第七页了,我根本找不到答案! 我使用文本允许用户编辑包含单选按钮和复选框的表单,因此当用户在应用程序中的xml上标记复选框时,它会选中pdf上的复选框。但是,当我运行应用程序时,它对生成和邮寄的pdf没有影响。 这是我在选中复选框和单选按钮时要获取的代码片段: PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(file)); final AcroFields acro

我已经搜索到谷歌的第七页了,我根本找不到答案! 我使用文本允许用户编辑包含单选按钮和复选框的表单,因此当用户在应用程序中的xml上标记复选框时,它会选中pdf上的复选框。但是,当我运行应用程序时,它对生成和邮寄的pdf没有影响。 这是我在选中复选框和单选按钮时要获取的代码片段:

PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(file));
                final AcroFields acroFields = stamper.getAcroFields();
if (checkBox.isChecked()) {
                    acroFields.setField("rf", String.valueOf(true));
                } else if (checkBox2.isChecked()) {
                    acroFields.setField("rwd",String.valueOf(true));
                } else if (checkBox3.isChecked()) {
                    acroFields.setField("ca", String.valueOf(true));
                } else if (checkBox4.isChecked()) {
                    acroFields.setField("lt", String.valueOf(true));
                } else if (checkBox5.isChecked()) {
                    acroFields.setField("d", String.valueOf(true));
                } else if (checkBox6.isChecked()) {
                    acroFields.setField("o", String.valueOf(true));
                }
                radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
                    @Override
                    public void onCheckedChanged(RadioGroup group, int checkedId) {
                        if(radioButton.isChecked()){
                            try {
                                acroFields.setField("male",String.valueOf(true));
                            } catch (IOException e) {
                                e.printStackTrace();
                            } catch (DocumentException e) {
                                e.printStackTrace();
                            }
                        }else if (radioButton2.isChecked()){
                            try {
                                acroFields.setField("female",String.valueOf(true));
                            } catch (IOException e) {
                                e.printStackTrace();
                            } catch (DocumentException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                });


                stamper.setFormFlattening(true);
                //stamper.getAcroFields();
                stamper.close();
            } catch (DocumentException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            reader.close();
            //document.add();

        }
    });
我也试着换了

String.valueOf(true)

但在我把它寄给自己之后,没有人对可填充的pdf文件做过修改。 我做错了什么?
还有其他方法可以让选中的复选框或单选按钮显示在pdf上吗?

除了搜索谷歌(这似乎是人们学习东西的新方式),你为什么不简单地搜索一下(这可能是传统的学习方式)?你会发现这个问题,不必解释我是老派。请注意,你的问题很混乱:你的代码看起来像是要更改复选框的值。但是,您的问题听起来好像您想知道复选框的值。也许你应该澄清一下。@BrunoLowagie当用户检查我创建的xml时,我试图检查pdf上的复选框。很抱歉造成混淆。好的,您找到外观状态了吗?这些告诉你需要勾选复选框的值。@对这个问题有什么建议吗?我面临同样的问题。
"on"