Java 使用PDF框禁用打印问题

Java 使用PDF框禁用打印问题,java,pdf,encryption,printing,pdfbox,Java,Pdf,Encryption,Printing,Pdfbox,我用它来加密和禁用pdf文件的打印。加密成功,但未禁用打印 可能是什么问题 下面是我的pom.xml的依赖项部分 <dependencies> <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>2.0.6</version

我用它来加密和禁用pdf文件的打印。加密成功,但未禁用打印

可能是什么问题

下面是我的pom.xml的依赖项部分

<dependencies>
    <dependency>
        <groupId>org.apache.pdfbox</groupId>
        <artifactId>pdfbox</artifactId>
        <version>2.0.6</version>
    </dependency>
    <dependency>
        <groupId>org.bouncycastle</groupId>
        <artifactId>bcprov-jdk15</artifactId>
        <version>1.46</version>
    </dependency>
</dependencies>

使用Adobe Reader打开文件时使用的密码是“Admin”还是“password”?如果您使用“管理员”,那么您拥有所有权限(所有者密码)。我使用的是密码。我也没有使用AdobeReader。这可能是一个问题吗?另一件要尝试的事情是:同时调用
setCanPrintDegraded(false)
。这取决于应用程序是否尊重该设置。Adobe PDF安全性不是真正的安全性。所以请用Adobe进行测试。我也不使用Adobe Reader。这可能是个问题吗那么你用什么来测试呢?你用什么密码用AdobeReader打开文件-“Admin”或“password”?如果您使用“管理员”,那么您拥有所有权限(所有者密码)。我使用的是密码。我也没有使用AdobeReader。这可能是一个问题吗?另一件要尝试的事情是:同时调用
setCanPrintDegraded(false)
。这取决于应用程序是否尊重该设置。Adobe PDF安全性不是真正的安全性。所以请用Adobe进行测试。我也不使用Adobe Reader。这可能是个问题吗那么你用什么来测试呢?
import java.io.File;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.encryption.AccessPermission;
import org.apache.pdfbox.pdmodel.encryption.StandardProtectionPolicy;

public class Test {
    public static void main(String[] args) throws Exception {
        PDDocument doc = PDDocument.load(new File("/tmp/Test.pdf"));
        int keyLength = 128;
        AccessPermission ap = new AccessPermission();
        ap.setCanPrint(false);
        StandardProtectionPolicy spp = new StandardProtectionPolicy("Admin", "Password", ap);
        spp.setEncryptionKeyLength(keyLength);
        spp.setPermissions(ap);
        doc.protect(spp);
        doc.save("/tmp/Test-Encrypted.pdf");
        doc.close();
    }

}