时间:2010-06-17 06:43:11

标签: java pdf printing itext

我们使用以下代码禁用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时才有效。对于其他版本,它不会禁用复制或打印按钮。

请帮助。
感谢

2 个答案:

答案 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>