我们使用以下代码禁用PDF中的“打印”选项。工作得很好。
PdfReader reader = new PdfReader("my-old-file.pdf");
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("my-new-file.pdf"));
stamper.setEncryption("my-owner-password".getBytes(), "my-user-password".getBytes(),
PdfWriter.AllowCopy, PdfWriter.STRENGTH40BITS);
stamper.close();
直到昨天,一切都很笨拙。我们决定从8.2版本将PDF Reader版本更新到9.3
打印选项不再禁用!看起来此代码仅在我们安装了Adobe Acrobat Reader 8时才有效。对于其他版本,它不会禁用复制或打印按钮。
请帮助。
感谢
答案 0 :(得分:1)
我没有看到Adobe只是放弃对这些安全标志的支持,但他们可能已经厌倦了STRENGTH40BITS。我建议你更新到STRENGTH128BITS。
那或它是一个Adobe Bug。
PS:最新版本的Acrobat是9.4,你可能会尝试使用那个版本......很长的赔率但值得一试。 9.3有点片状。可悲的是,这对我来说都是猜测。好狩猎。
答案 1 :(得分:0)
使用以下罐子:
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.3.2</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.47</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcmail-jdk15on</artifactId>
<version>1.47</version>
</dependency>