String fileUrl = "d:\\ContractInfoTemplate1.pdf";
try {
PdfReader reader = new PdfReader(fileUrl);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
PdfStamper ps = new PdfStamper(reader, bos);
AcroFields s = ps.getAcroFields();
System.out.println("s: " + s);
System.out.println("AcroFields: " + s.getFields());
System.out.println("AcroFields.class: " + s.getFields().getClass());
System.out.println("getSignatureNames: " + s.getSignatureNames());
System.out.println("getSignatureNames: " + s.getTotalRevisions());
System.out.println("s: " + s.getBlankSignatureNames());
System.out.println("s: " + s.getFieldCache());
s.setField("hetonghao", "00000000000", "00000000000");
s.setField("tbdwmc", "投保单位名称");
System.out.println("hetonghao:" + s.getField("hetonghao"));
System.out.println("tbdwmc:" + s.getField("tbdwmc"));
ps.setFormFlattening(false);
ps.close();
FileOutputStream fos = new FileOutputStream("D:\\123.pdf");
fos.write(bos.toByteArray());
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
代码目的是把一个pdf中的指定的文本域的内容改成输入的字符串,并生成新的pdf文件。
问题:建立的是文本域,stamp.setFormFlattening(false);   这句话很关键 
如果我设置true那么出来的就是原来的模板,没有我的赋值,但是我设置false 
显示出来也没有值,但是你用鼠标点文本域,就能显示值。在网上找了些资料,但都没有结果,请高手指点下,已经弄了两天了,谢谢javapdf