加密 PDF 文档

2025年3月17日 | 阅读 3 分钟

PDF 文档是纸质文档的流行替代品。 它们在每个平台上都具有相同的外观和感觉。 与纸质文档一样,某些 PDF 文档是机密的。 我们可以使用密码保护来保护 PDF 文档。 我们还可以在 PDF 文档中指定权限和加密类型。 在本节中,我们将描述如何使用 PDFBox 库加密和解密受密码保护的 PDF 文档。

可以使用StandardProtectionPolicyAccessPermission类提供的方法对 PDF 文档进行加密。

AccessPermission 类提供访问权限以保护 PDF 文档。 这些权限在 PDF 格式规范中指定,以限制用户执行以下操作

  • 打印文档
  • 修改文档的内容
  • 复制或提取文档内容
  • 添加或修改注释
  • 填写交互式表单字段
  • 提取文本和图形,以方便视障人士使用
  • 组装文档
  • 以降低的质量打印

PDF 文档需要两种类型的密码加密


PDFBox Encripting PDF Document

1. 所有者密码 - 也称为“权限密码”。 此密码用于以所有权限访问文件。

2. 用户密码 - 也称为“打开密码”。 此密码允许以受限权限打开和查看文件。

按照以下步骤加密现有的 PDF 文档 -

加载现有文档

我们可以使用静态 load() 方法加载现有的 PDF 文档。此方法接受一个 文件对象 作为 参数。我们也可以使用 PDFBox 的类名 PDDocument 来调用它。

创建 AccessPermission 对象

我们实例化 AccessPermission 类以创建一个对象,如下所示。

创建 StandardProtectionPolicy 对象

我们实例化 StandardProtectionPolicy 类以创建一个对象。 在此类中,我们需要提供所有者密码用户密码作为参数,这可以在下面的代码中显示。

设置加密密钥的长度

我们可以使用setEncryptionKeyLength()方法设置加密密钥的长度,这可以在下面的代码中显示。

设置访问权限

我们可以使用setPermissions()方法设置权限。 此方法接受一个AccessPermission对象作为参数。

保护文档

我们可以使用 protect() 方法来保护我们的文档。 此方法接受 StandardProtectionPolicy 对象作为参数。

保存文档

添加所需内容后,我们需要将文档保存到我们想要的位置。 save() 方法用于保存文档。 save() 方法接受一个字符串值,并将文档的路径作为参数传递。

关闭文档

最后,在完成任务后,我们需要使用 close() 方法关闭 PDDocument 类对象

示例-

假设,这是一个名为 Merged.pdf 的 PDF 文档文件。 我们可以通过 Java 程序的 PDFBox 库对 PDF 文件进行加密。


PDFBox Encripting PDF Document

Java 程序

输出

成功执行上述程序后,我们将看到以下输出消息。


PDFBox Encripting PDF Document

要验证给定的路径,我们可以观察到创建了一个名为 EncryptPDF.pdf 的 PDF 文档。 此文档包含所有者用户密码。 要打开此 PDF 文档,它需要密码,这可以在以下输出中显示。


PDFBox Encripting PDF Document
下一主题#