如何使用密码保护已经存在的 PDF?

Sre*_*h P 1 java itext

如何为现有的 PDF 设置密码?

Bru*_*gie 5

你看过我书的第 12 章中的EncryptionPdf示例吗?

就这么简单:

public void encryptPdf(String src, String dest) throws IOException, DocumentException {
    PdfReader reader = new PdfReader(src);
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
    stamper.setEncryption(USER, OWNER,
        PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_128 | PdfWriter.DO_NOT_ENCRYPT_METADATA);
    stamper.close();
    reader.close();
}
Run Code Online (Sandbox Code Playgroud)

请注意,USEROWNER是 类型byte[]。您有不同的权限选项(查找以 开头的常量ALLOW_),并且您可以从不同的加密算法中进行选择。

至于参数:src是现有PDF的路径。dest是加密PDF的路径。很明显,您不能在读取文件时写入文件。这在这里解释:如何在不创建新 PDF 的情况下更新 PDF?