Java 从可填充的pdf表单检索所有显示名称

Java 从可填充的pdf表单检索所有显示名称,java,pdf,pdf-generation,pdfbox,Java,Pdf,Pdf Generation,Pdfbox,提及 它具有类似于给定姓名、姓氏等字段,并带有文本框以进行输入 同样,它有性别和喜爱的颜色字段,带有组合框用于输入选择 我想检索表单中可用的所有字段名 我使用了pdField.getFullyQualifiedName()来检索作为给定名称的名称,但它返回给定名称文本框,而不是给定名称 我使用了ApachePDFBox库 代码段: java.io.File file = new java.io.File("/Users/harshad/Desktop/SampleTemplate.p

提及 它具有类似于给定姓名、姓氏等字段,并带有文本框以进行输入

同样,它有性别和喜爱的颜色字段,带有组合框用于输入选择

我想检索表单中可用的所有字段名

我使用了
pdField.getFullyQualifiedName()
来检索作为给定名称的名称,但它返回给定名称文本框,而不是给定名称

我使用了ApachePDFBox库

代码段:

 java.io.File file = new java.io.File("/Users/harshad/Desktop/SampleTemplate.pdf");
            PDDocument document = PDDocument.load(file);
            PDAcroForm pDAcroForm = document.getDocumentCatalog().getAcroForm();

            List<PDField> pdFieldList = pDAcroForm.getFields();
            for (PDField pdField : pdFieldList) {

              System.out.println("Qualified name : " + pdField.getFullyQualifiedName());
              System.out.println("Partial name : " + pdField.getPartialName());
              System.out.println("Alternate name : " + pdField.getAlternateFieldName());
              System.out.println("Mapping name : " + pdField.getMappingName());
              System.out.println("###########################");
            }
java.io.File File=new java.io.File(“/Users/harshad/Desktop/SampleTemplate.pdf”);
PDDocument document=PDDocument.load(文件);
PDAcroForm PDAcroForm=document.getDocumentCatalog().getAcroForm();
List pdFieldList=pDAcroForm.getFields();
用于(PDField PDField:pdFieldList){
System.out.println(“限定名:+pdField.getFullyQualifiedName());
System.out.println(“部分名称:+pdField.getPartialName());
System.out.println(“替代名称:+pdField.getAlternateFieldName());
System.out.println(“映射名称:”+pdField.getMappingName());
系统.out.println(“############################”;
}

我想检索标签
姓名、姓氏、地址1、地址2、德语、英语等

表单字段的名称为“姓名文本框”。它没有名称“给定名称”;表单字段附近仅显示文本“给定名称”。实际上,该字段确实有一个备用名称,但该备用名称是“名字”,而不是“给定名称”。@mkl每个字段都没有备用名称示例:限定名称:地址2文本框部分名称:地址2文本框备用名称:空映射名称:空(不相关)使用
getFieldTree
而不是
getFields
,请参阅javadoc。@TilmanHausherr,这对检索文本框、组合框和复选框的标签没有帮助。为了更好地理解,我添加了有问题的图像。这些字段的“标签”实际上与pdf中的字段没有直接关联。这些标签仅仅是在相关字段附近绘制的静态文本,有时在字段之前,有时在字段之后,并且以其他形式绘制,有时在字段上方,有时在字段下方,有时在字段内部。您可以尝试使用带有坐标的文本提取来编写代码,以比较文本和字段坐标,并推断哪个文本可能是哪个字段的标签。这在pdfbox中不是作为实用方法实现的。