使用 Apache PDFBox 创建 PDF 时访问权限无法正常工作

Access Permissions not working properly when creating a PDF with Apache PDFBox

在我的项目中,我有一个功能可以创建具有特定权限的 pdf 以用于不同类型的用途,例如不打印、不修改内容等。在某个时候,此功能不起作用。为此,我有此代码:

try (PDDocument document = new PDDocument()) {

document.setAllSecurityToBeRemoved(true);
            

AccessPermission accessPermissions = new AccessPermission();
accessPermissions.setCanModify(false);
accessPermissions.setCanExtractContent(true);
accessPermissions.setCanPrint(false);
accessPermissions.setCanPrintDegraded(false);
accessPermissions.setReadOnly();
//accessPermissions.setCanAssembleDocument(true);
            

StandardProtectionPolicy spp = new StandardProtectionPolicy(UUID.randomUUID().toString(), "", accessPermissions);
document.protect(spp);

在操作结束时,我将文档保存为 return 目标变量为文件路径的文件:

document.save(destination);
return new File(destination);

本次操作的最终结果:

正如您所见,当我在 adobe acrobat 中打开 pdf 时 reader 唯一禁用的按钮是保存按钮。我做错了什么是这个过程没有禁用打印按钮?

使用的 Apache PDFBox 版本是 1.8.10

移除

document.setAllSecurityToBeRemoved(true);

并且有效。因为那个告诉不要加密。