1

我们有一个包含现有字段的 PDF 表单,我们正在尝试使用默认值向表单添加新字段,但没有成功。基本上我们是这样做的:

        PdfReader reader = new PdfReader(new FileInputStream(new File("C:\\Temp\\577979.pdf")));
        PdfStamper stamper = new PdfStamper(reader, (new FileOutputStream(new File("C:\\Temp\\577979-out.pdf"))));
        AcroFields form = stamper.getAcroFields();

        // Let's add value to an existing field
        form.setField("idCustomer", "My customer!!!");

        // Let's add a new field
        TextField idDocTrackTypeField = new TextField(stamper.getWriter(), new Rectangle(150, 740, 180, 790), "idDocTrackType");
        PdfFormField field1 = idDocTrackTypeField.getTextField();

        // First attempt to set the value (before adding it)
        field1.setValueAsString("idDocTrackTypeValue1");

        // Let's add it
        stamper.addAnnotation(field1, 1);

        // Second attempt to set the value (after adding it)
        field1.setValueAsString("idDocTrackTypeValue2");

        // Third attempt to set the value
        form.setField("idDocTrackType", "idDocTrackTypeValue3")

字段 idCustomer 使用新值更新,但新字段 idDocTrackType 没有内容。我究竟做错了什么?

4

1 回答 1

1

请添加一个额外的行来设置文本:

TextField idDocTrackTypeField = new TextField(stamper.getWriter(),
    new Rectangle(150, 740, 180, 790), "idDocTrackType");
idDocTrackTypeField.setText("default text");
PdfFormField field1 = idDocTrackTypeField.getTextField();
于 2016-07-06T15:09:38.860 回答