Java 使用PDF框禁用打印问题
我用它来加密和禁用pdf文件的打印。加密成功,但未禁用打印 可能是什么问题 下面是我的pom.xml的依赖项部分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
<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();
}
}