使用 iText 将文本字段添加到具有默认值的 PDF 表单
Add a text field to a PDF form with default value using 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 没有内容。我做错了什么?
请添加额外的一行来设置文本:
TextField idDocTrackTypeField = new TextField(stamper.getWriter(),
new Rectangle(150, 740, 180, 790), "idDocTrackType");
idDocTrackTypeField.setText("default text");
PdfFormField field1 = idDocTrackTypeField.getTextField();
我们有一个包含现有字段的 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 没有内容。我做错了什么?
请添加额外的一行来设置文本:
TextField idDocTrackTypeField = new TextField(stamper.getWriter(),
new Rectangle(150, 740, 180, 790), "idDocTrackType");
idDocTrackTypeField.setText("default text");
PdfFormField field1 = idDocTrackTypeField.getTextField();