In Livecycle ES2, to programatically remove a password from an encrypted PDF with some Reader Extension rights, you need to first unlock the file and remove usage rights. Then, you can proceed to remove the password.
The process, however, fails on removePDFPasswordSecurity() when executing in the following order:
Document inDoc = new Document (fileInputStream); inDoc = encryptClient.unlockPDFUsingPassword(inDoc, "password"); inDoc = reClient.removeUsageRights(inDoc); inDoc = encryptClient.removePDFPasswordSecurity(inDoc,"password");
To avoid the issue, when you execute removeUsageRights(), output the the data to the file system. Then, read the output file and use it for removePDFPasswordSecurity().
This is a LiveCycle ES2 API issue.
On Adobe Digital Enterprise Platform Document Services and LiveCycle ES3, this specification for this PDF file security behavior is reverted to that of LiveCycle ES. Hence, this problem does not occur on these versions.