使用Itext填充PDF字段

使用Itext填充PDF字段,pdf,Pdf,来源 try { PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(outname)); AcroFields fields = stamper.getAcroFields(); // fields.get("Your Company Name:", "Changed"); // fields.get("Project Notes:", "Changed"); fiel

来源

try { 
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(outname)); 
    AcroFields fields = stamper.getAcroFields();

    // fields.get("Your Company Name:", "Changed");
    // fields.get("Project Notes:", "Changed");

    fields.setField("Your Company Name:", "Changed");
    fields.setField("Project Notes:", "Blah...Blah");
    Set<String> fldNames = fields.getFields().keySet();
    for (String fldName : fldNames) {
        System.out.println( fldName + ": " + fields.getField( fldName ) );
    }     

    stamper.close();
我想我已经看了很久不同的项目版本了。我看了类似的问题,他们使用了setAttributes,这也不起作用。我还在字段中运行代码。未注释get代码并收到编译错误-get string Undefined for type字段

另外,当我创建新的PDF文件时,是否有一种简单的方法可以延长
您的公司名称
值长度。。目前是21个字符,我希望大约是30个字符。

您可以打印

System.out.println( fldName + ": " + fields.getField( fldName ) );}     
因此,输出

Your Company Name: 
Your Name: 
[...]
(至少我假设换行符在那里,你把它们放在了你的问题文本中)

指示字段名称为
“您的公司名称”
“您的名称”
,而不是
“您的公司名称:”
“您的名称:”

因此,应该从字段设置调用中删除冒号

fields.setField("Your Company Name:", "Changed");
fields.setField("Project Notes:", "Blah...Blah");
fields.setField("Your Company Name:", "Changed");
fields.setField("Project Notes:", "Blah...Blah");