导入需要的jar包
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13</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>
private static boolean pdfEncrypt(String filePath, String savePath, String password){
try{
PdfReader reader = new PdfReader(filePath);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(savePath));
stamper.setEncryption(null,password.getBytes(),PdfWriter.ALLOW_COPY|PdfWriter.ALLOW_DEGRADED_PRINTING,PdfWriter.STANDARD_ENCRYPTION_128);
stamper.close();
reader.close();
return true;
}catch (Exception e){
e.printStackTrace();
return false;
}
}
权限 | 说明 |
---|
ALLOW_PRINTING | 文档允许打印 |
ALLOW_DEGRADED_PRINTING | 允许用户打印文档,但不提供allow_printing质量(128位加密) |
ALLOW_MODIFY_CONTENTS | 允许用户修改内容,例如 更改页面内容,或插入或删除页 |
ALLOW_ASSEMBLY | 允许用户插入、删除和旋转页面和添加书签。页面的内容不能更改,除非也授予allow_modify_contents权限,(128位加密) |
ALLOW_COPY | 允许用户复制或以其他方式从文档中提取文本和图形,包括使用辅助技术。例如屏幕阅读器或其他可访问设备 |
ALLOW_SCREENREADERS | 允许用户提取文本和图形以供易访问性设备使用,(128位加密) |
ALLOW_MODIFY_ANNOTATIONS | 允许用户添加或修改文本注释和交互式表单字段 |
ALLOW_FILL_IN | 允许用户填写表单字段,(128位加密) |