前言

在日常办公时,为了爱护文档不被别人篡改,咱们可为文档设置关上口令,即加密。同时,因须要咱们也可对加密文档进行解密,以便可能查看和编辑文档。本文将通过Java程序来演示如何对PDF文档进行加密和解密。

此次代码示例用到的控件是Free Spire.PDF for Java。该控件次要性能在于帮忙开发人员在Java应用程序中生成和操作PDF文档,且运行环境无需装置Adobe Acrobat。

Jar包装置及导入

在运行代码前,需将Jar包导入IDEA中。导入形式有两种:其 一,在官网上下载Free Spire.PDF for Java产品包,解压后将lib文件夹下的Spire.Pdf.jar手动导入IDEA中;其 二,在IDEA中创立一个Maven我的项目,而后在pom.xml文件中键入以下代码,最初点击“Import Changes”即可。

<repositories><repository><id>com.e-iceblue</id><url>http://repo.e-iceblue.cn/repository/maven-public/</url></repository></repositories><dependencies><dependency><groupId>e-iceblue</groupId><artifactId>spire.pdf.free</artifactId><version>3.9.0</version></dependency></dependencies>

最终导入效果图如下:

代码示例

【示例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:UsersTest1DesktopSample.pdf");        //对文件进行加密 PdfEncryptionKeySize keySize = PdfEncryptionKeySize.Key_128_Bit;//设置KeySize String 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();    }}

成果截图:

【示例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:UsersTest1DesktopEncrypt.pdf", "myppt123");        //对文件进行解密 doc.getSecurity().encrypt("", "", PdfPermissionsFlags.getDefaultPermissions(),                PdfEncryptionKeySize.Key_256_Bit, "edit");        //保留文件 doc.saveToFile("output/Decrypt.pdf");        doc.close();    }}

通过运行以上代码,咱们可能胜利地将设有关上口令的PDF文档进行解密。

总结

Free Spire.PDF for Java除了可设置关上口令对文档进行爱护外,还反对为PDF文档增加数字签名、验证数字签名有效性及增加骑缝章等性能。其余性能将在今后的教程里一一解说,可关注作者不便日后查找。对代码或产品包导入有疑难,可评论或私信。