我开发了PDF编码器,该编码器通常会删除密码并启用编辑功能。 但是,现在有一个受证书保护的文件,除类型不安全外,禁止更改任何内容。
我尝试了以下代码:
PDDocument doc = PDDocument.load(input);
AccessPermission perms = new AccessPermission();
perms.setCanAssembleDocument(true);
perms.setCanExtractContent(true);
perms.setCanModify(true);
perms.setCanModifyAnnotations(true);
perms.setCanExtractForAccessibility(true);
perms.setCanFillInForm(true);
perms.setCanPrint(true);
perms.setCanPrintDegraded(true);
perms.setCanExtractForAccessibility(true);
StandardProtectionPolicy policy = new StandardProtectionPolicy("secret", "", perms);
doc.protect(policy);
doc.setAllSecurityToBeRemoved(true);
doc.save(output);
但是它仅适用于受密码保护的文件。
有人知道错误/灵魂吗?
答案 0 :(得分:0)
我的猜测是该文件使用证书而非标准密码方法加密。在这种情况下,除非您具有相应的解密证书,否则您将无能为力。