Java:如何加密或解密PDF文档? 您所在的位置:网站首页 如何给加密pdf解密密码设置 Java:如何加密或解密PDF文档?

Java:如何加密或解密PDF文档?

2024-06-03 03:03| 来源: 网络整理| 查看: 265

在工作中,我们会将重要的文档进行加密,并且设置用户的访问权限,其他外部人员均无法打开,只有获取该权限的用户才有资格打开文档。此外,限制用户的使用权限,极大程度上阻止了那些有意要篡改、拷贝其中内容的人,提高文档的安全性。与此同时,文档加密的另一大作用是为了防止丢失,因为可能存在员工出差或离职时,将文档有意或无意的删除,造成文档丢失的现象,从而导致公司的业务和形象受到一定影响。那么我们如何才能加密PDF文档呢?加密文档之后又该如何解密呢?下面篇文章就详细介绍了如何以编程的方式,通过Java代码加密或解密PDF文档。

使用密码加密 PDF 文档 移除 PDF 文档的密码 代码编译环境:

IntelliJ IDEA 2019(jdk 1.8.0)

PDF Jar包:Free Spire.PDF for Java 5.1.0

引入jar包

导入方法1:

手动引入。将Free Spire.PDF for Java下载到本地,解压,找到lib文件夹下的Spire.PDF.jar文件。在IDEA中打开如下界面,将本地路径中的jar文件引入Java程序:

导入方法2:如果您想通过 Maven安装,则可以在 pom.xml 文件中添加以下代码导入 JAR 文件。

com.e-iceblue https://repo.e-iceblue.cn/repository/maven-public/ e-iceblue spire.pdf.free 5.1.0 使用密码加密 PDF 文档

可以用于加密 PDF 文档的密码有两种:打开密码和权限密码。打开密码可以限制其他人打开 PDF 文档,必须输入密码才能查看有打开密码的 PDF 文档。而权限密码则可以限制对文档进行操作,如打印、复制、评论等。当一个 PDF 文档被同时用这两种密码加密时,可以使用其中任意一种来打开 PDF 文档。

创建 PdfDocument 的对象。 使用 PdfDocument.loadFromFile() 方法载入 PDF 文件。 设置打开密码、权限密码、密钥大小以及权限。 使用 PdfDocument.getSecurity().encrypt(java.lang.String openPassword, java.lang.String permissionPassword, java.util.EnumSet permissions, PdfEncryptionKeySize keySize) 方法加密文档。 使用 PdfDocument.saveToFile() 方法保存 PDF 文件。 完整代码

Java

import java.util.EnumSet; import com.spire.pdf.PdfDocument; import com.spire.pdf.security.PdfEncryptionKeySize; import com.spire.pdf.security.PdfPermissionsFlags; public class encryptPDF { public static void main(String[] args) { //创建PdfDocument的对象 PdfDocument pdf = new PdfDocument(); //载入PDF文件 pdf.loadFromFile("收购XXX公司项目.pdf"); //加密文档 PdfEncryptionKeySize keySize = PdfEncryptionKeySize.Key_128_Bit; String openPassword = "password"; String permissionPassword = "permission"; EnumSet flags = EnumSet.of(PdfPermissionsFlags.Print, PdfPermissionsFlags.Fill_Fields); pdf.getSecurity().encrypt(openPassword, permissionPassword, flags, keySize); //保存文档 pdf.saveToFile("加密.pdf"); pdf.close(); } } 效果图

移除 PDF 文档的密码

如需解密 PDF 文件,可以使用将打开密码和权限密码设置为空,从而去掉密码。以下是详细操作步骤:

创建 PdfDocument 的对象。 使用 PdfDocument.loadFromFile(java.lang.String filename, java.lang.String password) 方法载入加密的 PDF 文件。 使用 PdfDocument.getSecurity().encrypt(java.lang.String openPassword, java.lang.String permissionPassword, java.util.EnumSet permissions, PdfEncryptionKeySize keySize, java.lang.String originalPermissionPassword) 方法将打开密码和权限密码设置为空,以解密文档。 使用 PdfDocument.saveToFile() 方法保存 PDF 文件。 完整代码

Java

import com.spire.pdf.PdfDocument; import com.spire.pdf.security.PdfEncryptionKeySize; import com.spire.pdf.security.PdfPermissionsFlags; public class decryptPDF { public static void main(String[] args) { //创建PdfDocument的对象 PdfDocument pdf = new PdfDocument(); //使用密码载入加密的PDF文档 pdf.loadFromFile("加密.pdf", "password"); //解密文档 pdf.getSecurity().encrypt("", "", PdfPermissionsFlags.getDefaultPermissions(), PdfEncryptionKeySize.Key_256_Bit, "permission"); //保存文件 pdf.saveToFile("解密.pdf"); pdf.close(); } } 效果图

—本文完—



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有