允许多于1个加密权限itext

时间:2018-05-23 16:02:17

标签: java itext

我正在尝试创建一个可读的pdf,可以使用2个不同的密码打开(并加密)。 我还希望pdf有超过1个权限:打印和屏幕再现。

我该怎么做?我尝试过:

    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    PdfWriter writer = PdfWriter.getInstance(document,byteArrayOutputStream);
    writer.setPdfVersion(PdfWriter.VERSION_1_7);
    writer.setEncryption(firstPass, secondPass, PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_256);
    writer.setEncryption(firstPass, secondPass, PdfWriter.ALLOW_SCREENREADERS, PdfWriter.ENCRYPTION_AES_256)

但显然它只需要第二次许可,所以我必须做什么?

1 个答案:

答案 0 :(得分:5)

请参阅此示例:https://developers.itextpdf.com/examples/itext-action-second-edition/chapter-12#474-encryptionpdf.java

特别是这一行:

stamper.setEncryption(USER, OWNER,PdfWriter.ALLOW_PRINTING,PdfWriter.ENCRYPTION_AES_128 | PdfWriter.DO_NOT_ENCRYPT_METADATA);

权限是位标志,因此您可以对它们进行逻辑OR以添加多个权限。