本文为您提供了一步一步的指南和代码示例,用于在 Java 中以编程方式加密和解密 PDF 文件。

加密或解密pdf java

在各种情况下,PDF 文档在利益相关者之间共享之前会被加密。加密使文档免受未经授权的访问和内容篡改。有几种流行的方法可以保护 PDF 文档 - 使用密码加密 PDF 或限制用户的访问权限,例如打印、编辑、复制等。本文演示了如何在 Java 中加密或解密 PDF。此外,您将学习如何限制用户在 PDF 文档中的权限。

用于加密或解密 PDF 的 Java API - 免费下载

Aspose.PDF for Java 是一个功能丰富的 PDF 操作 API,可让您无缝处理 PDF 加密和解密。此外,它还允许您以编程方式修改用户在 PDF 文档中的权限。您可以免费 下载 API 或使用以下 Maven 配置安装它。

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>20.9</version>
    <classifier>jdk17</classifier>
</dependency>

用 Java 加密 PDF 文件

PDF 文档的加密要求您设置用于打开和访问文档的密码。除此之外,您可以选择以下加密算法之一用于加密。

以下是用 Java 加密 PDF 文件的步骤。

以下代码示例展示了如何使用 Java 加密 PDF 文档。

// 如需完整的示例和数据文件,请访问 https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// 打开文档
Document document = new Document("input.pdf");
// 加密 PDF
document.encrypt("user", "owner", 0, CryptoAlgorithm.AESx256);
// 保存更新的 PDF
document.save("Encrypted_output.pdf");

打开加密的 PDF 时会出现以下对话框。

加密的pdf

用 Java 解密 PDF 文件

加密 PDF 文档的解密需要用户或所有者的密码。以下是用 Java 解密 PDF 文件的步骤。

以下代码示例展示了如何使用 Java 解密加密的 PDF。

// 如需完整的示例和数据文件,请访问 https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// 打开文档
Document document = new Document("input.pdf", "password");
// 解密PDF
document.decrypt();
// 保存更新的 PDF
document.save("output.pdf");

使用 Java 更改 PDF 中的安全权限

您还可以限制用户在加密 PDF 文档时执行不同操作的权限。以下是您可以设置的权限。

  • 打印文档 - 允许打印文档。
  • 修改内容 - 允许修改内容。
  • 提取内容 - 允许从文档中复制内容。
  • 修改文本注释 - 允许添加或更新文本注释。
  • 填写表格 - 允许填写交互式表格字段。
  • 提取残障内容 - 允许提取文本和图形(针对残障用户)。
  • 组合文档 - 允许插入、旋转或删除页面以及创建书签或缩略图。
  • 打印质量——允许高分辨率打印文档。

以下是在 PDF 文档中设置或修改权限的步骤。

  • 使用 Document 类加载 PDF。
  • 使用 DocumentPrivilege 类来设置权限。
  • 加密 PDF 并将其保存,就像您在前面的示例中所做的那样。

以下代码示例显示了如何使用 Java 修改 PDF 文档中的权限。

// 如需完整的示例和数据文件,请访问 https://github.com/aspose-pdf/Aspose.Pdf-for-Java
Document document = new Document("inputFile.pdf");
try /* JAVA: was using */
{
	DocumentPrivilege documentPrivilege = DocumentPrivilege.getForbidAll();
	documentPrivilege.setAllowScreenReaders(true);
	documentPrivilege.setAllowPrint(true);

	document.encrypt("user", "owner", documentPrivilege, CryptoAlgorithm.AESx128, false);
	document.save("outputFile.pdf");
} finally {
	if (document != null)
		document.dispose();
}

以下是加密 PDF 文件中的权限。

加密的pdf

结论

在本文中,您学习了如何在 Java 中加密或解密 PDF 文件。此外,您还了解了如何在 Java 中以编程方式修改用户在 PDF 文档中的权限。您可以使用 文档 探索和了解有关 Java PDF API 的更多信息。

也可以看看

使用 Java 在 PDF 中添加和验证数字签名在 C# 中将数据从数据库添加到 PDF在 C# 中向 PDF 文件添加或删除 JavaScript
在 Java 中向 PDF 文件添加或删除 JavaScript在 C# 中添加或更新 PDF 中的超链接在 Java 中添加或更新 PDF 中的超链接
在 C# 中以 PDF 格式创建图形和图表用 Java 创建 PDF 格式的图形和图表使用 C# 在 PDF 文件中创建表格
使用 Java 在 PDF 文件中创建表格用 Java 创建带标签的 PDF在 C# 中创建标记的 PDF 文件
在 C# 中为 PDF 文件生成缩略图用Java为PDF文件生成缩略图在 C# 中替换 PDF 文件中的图像
用Java替换PDF文件中的图像在 C# 中旋转 PDF 文档中的文本在 Java 中旋转 PDF 内的文本