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

科技资讯 投稿 11600 0 评论

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

    使用密码加密 PDF 文档
  • 移除 PDF 文档的密码

代码编译环境:

IntelliJ IDEA 2019(jdk 1.8.0)

引入jar

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

<repositories>

        <repository>

            <id>com.e-iceblue</id>

            <url>https://repo.e-iceblue.cn/repository/maven-public/</url>

        </repository>

    </repositories>

<dependencies>

    <dependency>

        <groupId>e-iceblue</groupId>

        <artifactId>spire.pdf.free</artifactId>

        <version>5.1.0</version>

    </dependency>

</dependencies>

使用密码加密 PDF 文档

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

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

完整代码

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 文档的密码

    创建 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<PdfPermissionsFlags> 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(; } }

效果图

—本文完—

编程笔记 » Java:如何加密或解密PDF文档

赞同 (55) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽