PDFBox:检索具有相同名称的多个文本字段

PDFBox: retrieve multiple textfields with the same name

我正在尝试使用 PDFBox 从 PDF (2.0.7) 中检索一些输入字段,但没有成功。

详细来说,我有以下内容(此处提供 PDF:https://file.io/q56S4r or here http://s000.tinyupload.com/index.php?file_id=38385451581058382678)。当前 PDF 包含 3 个同名文本字段 "Text1" 。此外,Acrobat PRO 表示那些字段,如 Acrobat Pro 的屏幕截图所示:

下面的代码不是检索 3 个字段,而是 returns 一个仅包含此对象的列表“Text1{type: PDTextField value: null}

PDDocument pdfDocument = PDDocument.load(input);
PDDocumentCatalog docCatalog = pdfDocument.getDocumentCatalog();
PDAcroForm acroForm = docCatalog.getAcroForm();
List<PDField> fields = acroForm.getFields();
for (PDField field : fields) {
   ...
}

有没有办法以某种方式读取所有字段,即使它们具有相同的名称?这可能是一种不好的做法,正确的答案是给出唯一的名字吗?

从技术上讲,PDF 只定义了一个字段。如果您在 Acrobat Reader 中打开 PDF 并在其中一个字段中输入一个值,则其他两个字段会立即填充相同的值。如果您真的想要三个不同的值,则需要为每个字段指定一个唯一的名称。