代码之家  ›  专栏  ›  技术社区  ›  Liz Lamperouge

允许超过1个加密权限IText

  •  2
  • Liz Lamperouge  · 技术社区  · 6 年前

    我正在尝试创建一个可读的PDF文件,可以用两个不同的密码打开(并加密)。 我还希望PDF有一个以上的权限:打印和屏幕阅读。

    我该怎么做?我尝试过:

        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 回复  |  直到 6 年前
        1
  •  5
  •   Jon Reilly    6 年前

    请参见此示例: 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);

    权限是位标志,因此您可以用逻辑或它们来添加多个权限。