我正在尝试更改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();
}
您应使用完全限定的字段名称。即代替
PDField pdField = (PDField) pdAcroForm.getField("imie_badacza");
使用
PDField pdField = (PDField) pdAcroForm.getField("topmostSubform.Page1.imie_badacza");