Java 加密和解密PDF文档

前言在日常办公时 , 为了保护文档不被他人篡改 , 我们可为文档设置打开口令 , 即加密 。 同时 , 因需要我们也可对加密文档进行解密 , 以便能够查看和编辑文档 。 本文将通过Java程序来演示如何对PDF文档进行加密和解密 。
此次代码示例用到的控件是Free Spire.PDF for Java 。 该控件主要功能在于帮助开发人员在Java应用程序中生成和操作PDF文档 , 且运行环境无需安装Adobe Acrobat 。
Jar包安装及导入
在运行代码前 , 需将Jar包导入IDEA中 。 导入方式有两种:其 一 , 在E-iceblue中文官网上下载Free Spire.PDF for Java产品包 , 解压后将lib文件夹下的Spire.Pdf.jar手动导入IDEA中;其 二 , 在IDEA中创建一个Maven项目 , 然后在pom.xml文件中键入以下代码 , 最后点击“Import Changes”即可 。
com.e-iceblue;/url>e-icebluespire.pdf.free3.9.0最终导入效果图如下:
Java 加密和解密PDF文档文章插图
代码示例 【示例1】加密PDF文档
import java.util.EnumSet;import com.spire.pdf.PdfDocument;import com.spire.pdf.security.PdfEncryptionKeySize;import com.spire.pdf.security.PdfPermissionsFlags;public class Encrypt {public static void main(String[] args) {//创建PdfDocument实例PdfDocument doc = new PdfDocument();//加载PDF文件doc.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample.pdf");//对文件进行加密PdfEncryptionKeySize keySize = PdfEncryptionKeySize.Key_128_Bit;//设置KeySizeString openPassword = "myppt123";//设置文档打开密码String permissionPassword = "edit";EnumSet flags = EnumSet.of(PdfPermissionsFlags.Print, PdfPermissionsFlags.Fill_Fields);doc.getSecurity().encrypt(openPassword,permissionPassword,flags, keySize);//保存文件doc.saveToFile("output/Encrypt.pdf");doc.close();}}效果截图:
Java 加密和解密PDF文档文章插图
【示例2】解密PDF文档
import com.spire.pdf.PdfDocument;import com.spire.pdf.security.PdfEncryptionKeySize;import com.spire.pdf.security.PdfPermissionsFlags;public class Decrypt {public static void main(String[] args) throws Exception {//创建PdfDocument实例PdfDocument doc = new PdfDocument();//加载PDF文件doc.loadFromFile("C:\\Users\\Test1\\Desktop\\Encrypt.pdf", "myppt123");//对文件进行解密doc.getSecurity().encrypt("", "", PdfPermissionsFlags.getDefaultPermissions(),PdfEncryptionKeySize.Key_256_Bit, "edit");//保存文件doc.saveToFile("output/Decrypt.pdf");doc.close();}}通过运行以上代码 , 我们能够成功地将设有打开口令的PDF文档进行解密 。
总结【Java 加密和解密PDF文档】Free Spire.PDF for Java除了可设置打开口令对文档进行保护外 , 还支持为PDF文档添加数字签名、验证数字签名有效性及添加骑缝章等功能 。 其他功能将在今后的教程里一一讲解 , 可关注作者方便日后查找 。 对代码或产品包导入有疑问 , 可评论或私信 。