使用java语言加密实现对pdf文档的权限控制

本篇文章将介绍通过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 + "秒 -- " + "完成!");
	}
}

结果:
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/mlynb/article/details/121602647