Java 如何使用iText根据关键字名称填充PDF文本字段

Java 如何使用iText根据关键字名称填充PDF文本字段,java,pdf-generation,itext,pdf-reader,pdfstamper,Java,Pdf Generation,Itext,Pdf Reader,Pdfstamper,我们有一个可编辑的PDF,其中包含大量文本字段和其他字段,用户可以在PDF表单中输入值。 对于某些字段,我们需要在向用户显示PDF时预先填充值。 我们通过读取OutputStream来显示PDF,并将其作为嵌入式呈现给浏览器。 我们正在使用iTextAPI(如PdfStamper)来操作PDF。 我们不知道PDF中每个字段的名称,因为它是由其他人生成的。 是否有可能根据文本框前的关键字名称查找文本字段?例如,Patient Name:Textbox,我们希望基于Patient Name作为键为T

我们有一个可编辑的PDF,其中包含大量文本字段和其他字段,用户可以在PDF表单中输入值。 对于某些字段,我们需要在向用户显示PDF时预先填充值。 我们通过读取OutputStream来显示PDF,并将其作为嵌入式呈现给浏览器。 我们正在使用iTextAPI(如PdfStamper)来操作PDF。 我们不知道PDF中每个字段的名称,因为它是由其他人生成的。 是否有可能根据文本框前的关键字名称查找文本字段?例如,Patient Name:Textbox,我们希望基于Patient Name作为键为Textbox分配值


如果可能的话,我们可以根据键找到合适的字段,并将值分配给字段。

按键是指恰好位于字段附近的文本标签吗?我们可以使用PDFStamper的setField方法分配值,如下所示:PDFStamper PDFStamper=新PdfStamperpdfReader,buffer;pdfStamper.getAcroFields.SetField患者姓名,ABC;是的,克里斯·哈斯。感谢您对帮助我们的兴趣标签是内容流的一部分。键是字段的名称。你把标签和钥匙弄混了。使用setField方法时,需要使用键。患者姓名是关键还是标签?如果你不知道这个问题的答案,你需要分享你的PDF。是的,布鲁诺·洛瓦吉,你是对的。在我们的例子中,标签似乎被指定为键,这就是为什么当我使用setField给出标签时,它正在填充PDF中的值。如果标签和键不同,那么我不知道如何使用标签指定值。你能分享一下你的想法吗?我可以用Map fields=acroFields.getFields检索所有的键;设置关键点=fields.keySet;