我们这里使用的是itext进行操作的,也可以去itext官网找,非常简洁,建议使用管理员打开idea测试,
1.导入所需的依赖
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.9</version>
</dependency>
2.加密操作的代码
/**
*
* @param src 未加密路径
* @param dest 加密后存放的路径
* @param count 密码6位随机数(非固定位数)
* @return
*/
public Map<String, String> addAttachment(String src, String dest,int count) {
Map<String, String> map = new HashMap();
String password = String.valueOf(count);
//未加密文件路径
map.put("outputFile", src);
//加密文件路径 E:/pdfTest/lodeFile/123.pdf
map.put("inputFile", dest);
//生成的文件密码 E:/pdfTest/lodeFile/123jiami.pdf
map.put("password",password);
//pdf权限,值为"PdfWriter.ALLOW_PRINTING"
int permission = 0;
try {
// 待加密码的文件
PdfReader reader = new PdfReader(src);
// 加完密码的文件
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(
dest));
// 设置密码文件打开密码文件编辑密码
stamper.setEncryption(password.getBytes(),
password.getBytes(), permission, false);
//关闭流
stamper.close();
} catch (Exception e) {
e.printStackTrace();
}
return map;
}
新手写的,有问题请联系2517411084@qq.com,遇到问题可以尝试管理员启动idea进行测试