2016-07-06 99 views
0

我们有一个带有现有字段的PDF表单,并且我们尝试使用默认值将新字段添加到表单中,但没有成功。基本上我们做如下:使用iText将默认值的文本字段添加到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没有内容。我究竟做错了什么?

回答

0

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

TextField idDocTrackTypeField = new TextField(stamper.getWriter(), 
    new Rectangle(150, 740, 180, 790), "idDocTrackType"); 
idDocTrackTypeField.setText("default text"); 
PdfFormField field1 = idDocTrackTypeField.getTextField();