使用 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);
并且有效。因为那个告诉不要加密。
在我的项目中,我有一个功能可以创建具有特定权限的 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);
并且有效。因为那个告诉不要加密。