pdfbox找不到符号

时间:2017-01-31 01:14:26

标签: pdf pdfbox

我正在使用@ASu之前建议的代码:

package pdf_form_filler;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDDocumentCatalog;
import org.apache.pdfbox.pdmodel.interactive.form.*;
import java.io.File;
import java.util.*;

public class pdf_form_filler {
public static void listFields(PDDocument doc) throws Exception {
    PDDocumentCatalog catalog = doc.getDocumentCatalog();
    PDAcroForm form = catalog.getAcroForm();
    List<PDFieldTreeNode> fields = form.getFields();

    for(PDFieldTreeNode field: fields) {
        Object value = field.getValue();
        String name = field.getFullyQualifiedName();
        System.out.print(name);
        System.out.print(" = ");
        System.out.print(value);
        System.out.println();
    }
}

public static void main(String[] args) throws Exception {
    File file = new File("test.pdf");
    PDDocument doc = PDDocument.load(file);
    listFields(doc);
}

}

但是,我一直在为PDFieldTreeNode找不到符号错误。我有最新的pdfbox(2.0.4),但无论如何我都找不到它的课程。我尝试使用PDField代替但后来得到.getValue

的错误

1 个答案:

答案 0 :(得分:0)

要获取所有终端字段,请执行以下操作:

Iterator<PDField> fieldIterator = catalog.getAcroForm();
while (fieldIterator.hasNext())
{
    PDField pdField = fieldIterator.next();
    // do stuff with the field
}

form.getFields()仅获取顶级字段,包括非终结字段(即没有值但字段为儿童的字段)。

可以在PrintFields.java example中找到更高级的示例。