本文為您提供分步指南和代碼示例,以在 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 文檔時執行不同操作的權限。以下是您可以設置的權限。

  • 打印文檔 – 允許打印文檔。
  • 修改內容 – 允許修改內容。
  • 提取內容 - 允許從文檔中復制內容。
  • 修改文本註釋 - 允許添加或更新文本註釋。
  • 填寫表格 – 允許填寫交互式表格字段。
  • Extract Content with Disabilities – 允許提取文本和圖形(針對殘障用戶)。
  • 組合文檔 – 允許插入、旋轉或刪除頁面以及創建書籤或縮略圖。
  • 打印質量 – 允許高分辨率打印文檔。

以下是在 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 中的文本