本篇文章将介绍通过Java编程来设置PDF文档保护的方法。我们可以设置仅用于查阅文档的密码,即该通过该密码打开文档仅用于文档阅读,无法编辑;也可以设置文档编辑权限的密码,即通过该密码打开文档时,文档为可编辑状态。
使用工具jar包:https://download.csdn.net/download/mlynb/51813929
1,使用eclipse创建java项目,然后建立一个lib文件,将上边的jar包复制进去.
然后挨个选中jar包,bulid path ,选第一个就可以,然后查看出现了如下就成功了
加密pdf代码
package demo001;
import java.io.File;
import java.util.EnumSet;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.security.PdfEncryptionKeySize;
import com.spire.pdf.security.PdfPermissionsFlags;
public class demo002 {
// 单线程版
public static void main(String[] args) {
long time1 = System.currentTimeMillis();
String name = null;
int count = 0;
File file3 = null;
// 输入PDF文件所在的文件夹的绝对路径 文件夹内不要放已加密的PDF,也不要放非PDF文件,否则异常
File file = new File("D:\\aa");
// 遍历文件夹内所有的PDF文件
File[] files = file.listFiles();
// 文件的绝对路径文件名,为了加载PDF需要绝对路径
String absoluteName = null;
// 文件名,保存文件时需要该文件名
// 创建PdfDocument实例
PdfDocument doc = new PdfDocument();
// 遍历每一个PDF文件
for (File file2 : files) {
// 获取文件的绝对路径文件名
absoluteName = file2.getAbsolutePath();
// 获取文件名
file3 = new File(absoluteName);
name = file3.getName();
// 加载PDF文件
doc.loadFromFile(absoluteName);
// 加密PDF文件
PdfEncryptionKeySize keySize = PdfEncryptionKeySize.Key_128_Bit;
String openPassword = "123456";// 打开文档时,仅用于查看文档
String permissionPassword = "test";// 打开文档时,可编辑文档
EnumSet flags = EnumSet.of(PdfPermissionsFlags.Copy_Content , PdfPermissionsFlags.Fill_Fields);
doc.getSecurity().encrypt(openPassword, permissionPassword, flags, keySize);
count++;// 只是为了记个数
// 保存文件,自己命名,不改就是原文件名,文件存放在当前项目的目录下
doc.saveToFile(name);
}
long time2 = System.currentTimeMillis();
int time = (int) (time2 - time1);
time = time / 1000;
int seconed = time % 60;
doc.close();
System.out.println(count + "个文件,计时" + time / 60 + "分 " + seconed + "秒 -- " + "完成!");
}
}
结果: