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

时间:2017-09-05 13:13:17

标签: java pdf pdfbox

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

详细说明,我有以下内容(PDF可在此处获取:https://file.io/q56S4r或此处http://s000.tinyupload.com/index.php?file_id=38385451581058382678)。当前PDF包含3个具有相同名称“ Text1 ”的文本字段。此外,Acrobat PRO代表了Acrobat Pro屏幕截图中所示的那些字段:

enter image description here

下面的代码不是检索3个字段,而是返回一个只包含此对象的列表“ 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) {
   ...
}

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

1 个答案:

答案 0 :(得分:2)

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