美文网首页Java
Java 加密和解密PDF文档

Java 加密和解密PDF文档

作者: Tina_Tang | 来源:发表于2020-10-13 10:27 被阅读0次

前言

在日常办公时,为了保护文档不被他人篡改,我们可为文档设置打开口令,即加密。同时,因需要我们也可对加密文档进行解密,以便能够查看和编辑文档。本文将通过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:\\Users\\Test1\\Desktop\\Sample.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:\\Users\\Test1\\Desktop\\Encrypt.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文档添加数字签名、验证数字签名有效性及添加骑缝章等功能。其他功能将在今后的教程里一一讲解,可关注作者方便日后查找。对代码或产品包导入有疑问,可评论或私信。

相关文章

网友评论

    本文标题:Java 加密和解密PDF文档

    本文链接:https://www.haomeiwen.com/subject/mgzmpktx.html