暗号化された 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();
しかし、それは私に以下の例外をスローします
java.lang.NullPointerException at org.apache.pdfbox.pdmodel.encryption.StandardSecurityHandler.prepareDocumentForEncryption(StandardSecurityHandler.java:303)
また、doc.save(""); の上に以下のステートメントを追加してみました。
document.setAllSecurityToBeRemoved(true);
エラーなしでプログラムを実行できるようになりましたが、目的の値 (値: "ABC") が保存されたドキュメントに入力されていません..空白に見えます
誰でも私を助けてくれませんか!!
ありがとう