我有一个加密的 PDF 表单文档,需要在表单中填写所需的值,最后需要保存文档这是我尝试过的一段代码
PDDocument document;
document = PDDocument.load(sourcePath);
if( document.isEncrypted() )
{
try
{
document.decrypt( "" );
}
catch( InvalidPasswordException e )
{
}
}
PDAcroForm form = document.getDocumentCatalog().getAcroForm();
PDField Field_1= form.getField("topmostSubform[0].CMS1500Form[0].PatientName[0]");
Field_1.setValue("ABC");
document.save("C:\\Users\\347702\\Desktop\\21.pdf");
document.close();
但这给我带来了以下异常
org.apache.pdfbox.pdmodel.encryption.StandardSecurityHandler.prepareDocumentForEncryption 处的 java.lang.NullPointerException(StandardSecurityHandler.java:303)
我还尝试在 doc.save(""); 上方添加以下语句
document.setAllSecurityToBeRemoved(true);
现在我可以执行程序而不会出现任何错误,但是保存的文档中没有填写所需的值(值:“ABC”).. 它看起来是空白的
任何人都可以帮助我吗?
谢谢