为什么从PDFBox 2.0.19使用PDField.setValue()获得NullPointterException?

问题描述 投票:2回答:1

我正在尝试更改PDF文件字段中的文本,但始终收到NullPointerException。我正在使用PDFBox 2.0.19。

该文件可以很好地加载,例如,我可以添加一个页面并在Desktop上保存一个新页面,但是设置filed的值会导致崩溃。

您能帮我吗?我在做什么错?

public static void main(String args[]) throws IOException {
    File file = new File("C:/Users/Bondi/Desktop/karta.pdf");
    PDDocument pdDocument = PDDocument.load(file);
    PDDocumentCatalog pdDocumentCatalog = pdDocument.getDocumentCatalog();
    PDAcroForm pdAcroForm = pdDocumentCatalog.getAcroForm();
    if (pdAcroForm != null) {
        PDField pdField = (PDField) pdAcroForm.getField("imie_badacza");
        pdField.setValue("Badacz");
    }
    pdDocument.save("C:/Users/Bondi/Desktop/karta2.pdf");
    pdDocument.close();
}

Error Screenshot“”

My pdf's fields hierarchy“”

nullpointerexception pdfbox setvalue
1个回答
1
投票

您应使用完全限定的字段名称。即代替

PDField pdField = (PDField) pdAcroForm.getField("imie_badacza");

使用

PDField pdField = (PDField) pdAcroForm.getField("topmostSubform.Page1.imie_badacza");
© www.soinside.com 2019 - 2024. All rights reserved.